程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle jobs 導出為執行腳本

oracle jobs 導出為執行腳本

編輯:Oracle數據庫基礎

/*Oracle jobs 導出為執行腳本

  就是把user_jobs或dba_jobs,導成DBMS_JOB.SUBMIT可以插入job的格式
  其中user_jobs是當前用戶的job,dba_jobs則是全部
  下面只是隨便整理了下,可以按照個人需要修改

 設置  file_dir  file_name 參數
 導出文件內容如最後附所視

 局限性 要設置utl_file_dir(alter system set utl_file_dir=) ,file_dir要包括在
 文件生成在服務端

 其實可以封裝成過程,或把結果存入臨時表,或dbms_output.put_line

  edit by inreyou 14:41 2007-11-16
*/

Declare
  f         utl_file.file_type;
  jobn      integer;
  s         varchar2(4000);
  file_dir  varchar(100);--目錄
  file_name varchar(100);--文件名

begin
  file_dir  := ''d:\temp'';
  file_name := ''utl_file1.sql'';

  f := utl_file.fopen(file_dir, file_name, ''w'');

  s := ''declare'' || chr(13) || chr(10) || '' jobno number;'' || chr(13) ||
       chr(10) || ''snd varchar2(20);'' || chr(13) || chr(10) || ''begin'';
  utl_file.put_line(f, s);
  --if export all jobs change user_jobs to dba_jobs
  for JS in (select job, log_user, next_date, broken, interval, what
               from user_jobs) loop
    --dbms_job.user_export(y,s) 這種格式導出作業號插入不好處理
    s := ''execute immediate ''''select to_char('' || JS.interval ||
         '',''''||chr(39)
     ||''''yyyy-mm-dd hh24:mi:ss''''||chr(39)||'''') from dual'''' into snd;'';
 
    s := S || chr(13) || chr(10) || ''DBMS_JOB.SUBMIT(jobno, '' || chr(39) ||
         JS.what || chr(39) || '',to_date(snd,'' || chr(39) ||
         ''yyyy-mm-dd hh24:mi:ss'' || chr(39) || '')'' || '','' || chr(39) ||
         JS.interval || chr(39) || '');'' || chr(13) || chr(10);
    utl_file.put_line(f, s);
 
  --s:=''dbms_job.run(jobno);'';
  --utl_file.put_line(f,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved