當前位置:首頁 » 編程語言 » 定時執行資料庫sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

定時執行資料庫sql

發布時間: 2023-04-25 08:50:07

A. 在unix下定時執行oracle的sql方法

在linux 有多種方式可以實現定時運行 使用最靈活的應該是crontab 舉行在使用crontab必須特別注意環境變數問題 在此以執行oracle的sqlplus為例 說明crontab的使用方法 crontab 使用方法 crontab [ e | l | r ] 文件名 e:編輯任務 l:顯示任務信息 r:刪除定時執行任務信息 crontab中處理的文件格式為 分鍾 小時 日期 月 星期 執行的文件名 *代表所有條件 * * * * rem /home/oracle/execsql 代表每個小時的 分鍾時執行/home/oracle/execsql文件 對於sql等搏御需要在特定的環境變數下運行的命令 在執行文件中必須列出 如在oracle下執行sqlplus 必須按以下格式編寫 $ cat execsql ORACLE_HOME=/ora ;export ORACLE_HOME ORACLE_OWNER=oracle;export ORACLE_OWNER ORACLE_SID=ora ;export ORACLE_SID ORACLE_BASE=/ora /app/oralce;export ORACLE_BASE LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH;export PATH NLS_LANG=AMERICAN_AMERICA ZHS CGB ;export NLS_LANG /ora /bin/sqlplus test /test @test ext (執行@test ext文件 資料庫的用戶名/密碼為test /test ) 其中要求execsql為可執行的程序基答岩 $ ls al execsql rwxr xr x oracle dba Oct : execsql lishixin/Article/program/Oracle/201311/18376

B. 怎麼樣才能讓sql資料庫定期執行一句sql語句

create or replace procere MYPROCEDURE is
begin
UPDATE mac_vod SET vod_play_url= replace(vod_play_url, '第', '弟');
commit;
end MYPROCEDURE;

declare myjob number;
begin
DBMS_JOB.SUBMIT(
job => myjob,
what => 'myprocere;',
next_date => SYSDATE,
interval => 'sysdate+5/(24*60)');
commit;
end;

C. 請教,如何定時自動執行SQL

--"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: Update City Set IsAccess=0--確定--"調度"項--新建調度--"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排--定為每天調度一次,時間為18:40即可 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行設置方法:我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.

D. 怎麼樣才能讓sql資料庫定期執行一句sql語句

使用SQL代理服務的」作業「(job)。以SQL2000為例。

1、在SQL企業管理器中,如圖選擇」作業「,新建一個作業

4、保存作業即可。

E. SQL Server 里需要定時執行某個存儲過程,存儲過程怎麼寫

1、管理->SQL Server代理->作業(按滑鼠右鍵)->新建作業->
2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->
分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL Server用戶[也可選其它的登錄]->描述[填寫本次工作詳細描述內容];[ 創建作業分類的步驟:SQL Server代理->作業->右鍵選所有任務->添加、修改、刪除 ]
3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->資料庫[要操作的資料庫]->命令[ 如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*.sql文件如果要執行存儲過程,填exec p_procere_name v_parameter1,[ v_parameter2…v_parameterN]]->確定(如果有多個步驟,可以再次調用下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除);
4、建作業屬性(調度)->新建調度->名稱[自定義調度名稱]->啟用的方框內是勾號->調度->反復出現->更改[調度時間表]->確定(如果只要保存此作業,不要定時做可以把啟用的方框內是勾號去掉);
5、建作業屬性(通知)->用默認的通知方法就好[當作業失敗時,寫入Windows應用程序系統日誌] ->確定。

F. 定期執行SQL語句

1.無論你的SQL版本是什麼,首先需要把SQL代理啟用!
2.你的SQL版本如果是2000,就點「工具」>"新建作業"(工具就是最上面那一排,有新建,編輯,什麼亂七八糟的,你選工具)
3.通過提示點下一步,把你寫的SQL語句加進去,記住他的語句最大長度是3200,超過這個長度就沒戲了(一般不會超過的)。
4.下一步到有個地方可以選「調度」,你點進去調度,裡面有立即執行,每天一次,每周一次(還有什麼我忘了,反正時間可以自己隨意定),下面有具體時間設定,你一看就會,設定好後,點「下一步」一直到最後一步,完成。
5。如果你的SQL版本是2005,就派晌直接點代理,有個文件夾就叫「作業」,你右鍵這個文件夾,有個提示「新建作業」,點進去設置就好了,原理都是一樣的。就塵帆鋒是比2000的界面漂亮點兒。轎鋒
6.如果你用的SQL版本是2008,和2005差不多,我沒怎麼太多用過,如法炮製吧,祝你好運!!

G. Oracle中如何定時執行一條SQL語句

通過網上查詢,找到一種方案,就是先在oracle裡面對要定時的sql寫成存儲過程,再用DBMS_scheler對存儲過程進行定時執行。

在資料庫中新建了一個表MY_JOB_TEST

在資料庫中新建了一個表MY_JOB_TEST

在資料庫中新建了一個表MY_JOB_TEST

在PLSQL中,執行下面語句模擬存儲過程的調用,執行後要點提交才有反應

[sql] view plain

  • BEGIN

  • INSERTINTOMY_JOB_TEST(NUM)VALUES(1);

  • END;


  • 然後下面建立一個存儲過程JOB_TEST

    (注意,這里用戶需要CREATE JOB許可權,可以用超級管理員用戶執行下面語句給指定用戶賦予該許可權)

    [sql] view plain

  • GrantCreateJobTo指定用戶名



  • [sql] view plain

  • SQL>CREATEORREPLACEPROCEDURE

  • JOB_TEST

  • BEGIN

  • INSERTINTOMY_JOB_TEST(NUM)VALUES(1);

  • END;


  • (此處要執行存儲過程不能用exec JB_TEST,這種執行方式只能在命令行中使用)
  • 使用DBMS_SCHEDULER進行定時,這里為每分鍾執行一次

    [sql] view plain

  • SQL>BEGIN

  • DBMS_SCHEDULER.CREATE_JOB(

  • job_name=>'SCHEDULER_TEST',

  • job_type=>'STORED_PROCEDURE',

  • job_action=>'JOB_TEST',

  • start_date=>sysdate,

  • repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');

  • END;


  • 但是這樣子定時任務並不會執行。
  • 我們可以用下面的命令查看一下scheler的狀態

    [plain] view plain

  • SQL>SELECT*FROMUSER_SCHEDULER_JOBS;

  • 此時我們可以看到enable的狀態是false的,因此我們需要去啟動定時任務
  • [plain] view plain

  • SQL>BEGIN

  • DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');


  • dbms_scheler.enable('j_test'); --啟用jobs
    dbms_scheler.disable('j_test'); --禁用jobs
    dbms_scheler.run_job('j_test'); --執行jobs
    dbms_scheler.stop_job('j_test'); --停止jobs
    dbms_scheler.drop_job('j_test'); --刪除jobs


    然後再查詢job的enable裝態,發現為true了。

    然後查看MY_JOB_TEST表,發現每分鍾會往裡面添加記錄。

    當需要修改定時任務或者調度的其他屬性時,可以用下面的

  • dbms_scheler.set_attribute('調度名','調度屬性','調度值');



  • 至此,定時任務完成。

H. 在UNIX環境下怎樣定時執行某個sql腳本

第一種方法:
在命令行下(未連接資料庫),輸入
mysql
-h
localhost
-u
root
-p123456
<
F:\hello
world\niuzi.sql
(注意路徑不用加引號的!!)
回車即可.
第二種方法:
在命令行下(已連接資料庫,此時的提示符為
mysql>
),輸入
source
F:\hello
world\niuzi.sql
(注意路徑不用加引號的)
或者
\.
F:\hello
world\niuzi.sql
(注意路徑不用加引號的)
回車即可.

I. 如何定時的去執行SQL語句

1.把要執行的SQL語句准備好,例如:
use ttNew //使用ttNew資料庫
Go
insert into Users(name) values(" ") //往表Users插入一條記錄
將該語句保存在文件user.sql里,放在d盤跟目錄下。
2.寫一個批處理文件,例如:
再新建一個記事本,里邊寫上語句osql -E -i d:\user.sql,保存為11.bat
3.利用系統任務計劃調用批處理文件,執行SQL語句

在系統程序->附件->系統工具->任務計劃
添加新任務計劃,點下一步,再點瀏覽,找到11.bat文件,後,選擇執行時間,點下一步。一直點,最後輸入本機的密碼,點完成。