通過oracle dbms_job建立table

wisdomone1發表於2009-12-01
1,如何利用dbms_job建立表(table)
 conn test/system
2,建立儲存過程(建立表)
SQL> create procedure lv
  2  is
  3  i varchar2(1000);
  4  begin
  5  i:='create table bb(a int)';
  6  execute immediate i;
  7  end;
  8  /

Procedure created.
3,測試上述儲存過程功能是否正常
SQL> execute lv;--提示如下錯誤,以sysdba授權就可
BEGIN lv; END;

*
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "TEST.LV", line 6
ORA-06512: at line 1


SQL> conn /as sysdba
Connected.
SQL> grant create any table to test;

SQL>Grant succeeded.
SQL>grant execute on test.lv to test;

SQL> conn test/system
Connected.
SQL> execute lv;

PL/SQL procedure successfully completed.


4,根據dbms_job構建建表job
1  begin
  2  dbms_job.submit(:job1,'lv;',sysdate,'sysdate+1/1440');--lv為引上建立的儲存過程
  3* end;
SQL> r
  1  begin
  2  dbms_job.submit(:job1,'lv;',sysdate,'sysdate+1/1440');
  3* end;

PL/SQL procedure successfully completed.

select job from user_jobs;--查出上述建立job

5,手工測試job是否功能正常
conn test/system
exec dbms_job.run(201);  --手工執行
desc bb;--檢視錶是否存在

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-621098/,如需轉載,請註明出處,否則將追究法律責任。

相關文章