在oracle中调度作业以删除并创建表

时间:2014-02-17 09:50:51

标签: oracle dblink

我正在尝试使用预定作业DROP并创建表。怎么办呢?

DROP TABLE REGISTRATION;

CREATE TABLE REGISTRATION AS
SELECT *
FROM REGISTRATION_MV@D3PROD_KMDW

3 个答案:

答案 0 :(得分:2)

也许您正在寻找物化视图而不是表格?

create materialized view registration as
select *
from registration_mv@d3prod_kmdw

然后在作业中刷新它

dbms_mview.refresh('REGISTRATION');

这比删除和创建表要好得多,因为删除表后PL / SQL对象将变为无效。使用mview,它将保持沉默,没有任何伤害。

答案 1 :(得分:1)

您应该使用DBMS_SCHEDULER在Oracle中安排作业。

有关如何创建示例调度程序作业的信息,请参阅documentation

答案 2 :(得分:1)

不要删除并重新创建表格。如果您定期执行此操作,您的回收站中将会收到大量物品,这可能会导致问题。同样如上所述,您可以在删除对象时使pl / sql无效,如果无法重新编译,可能会破坏您的应用程序。

相反,您应该截断表以删除所有行,然后重新填充它:

  

截断表注册;

     

插入注册(select * from registration_mv @ D3PROD_KMDW);