【问题标题】:Scheduling a job in oracle to drop and create table在 oracle 中安排作业以删除和创建表
【发布时间】:2014-02-17 09:50:51
【问题描述】:

我正在尝试使用计划作业删除和创建表。请问怎么做?

DROP TABLE REGISTRATION;

CREATE TABLE REGISTRATION AS
SELECT *
FROM REGISTRATION_MV@D3PROD_KMDW

【问题讨论】:

    标签: oracle dblink


    【解决方案1】:

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

    create materialized view registration as
    select *
    from registration_mv@d3prod_kmdw
    

    然后在工作中刷新

    dbms_mview.refresh('REGISTRATION');
    

    这比删除和创建表要好得多,因为删除表后 PL/SQL 对象将变得无效。使用 mview 它将保持安静且不会造成伤害。

    【讨论】:

    • 我同意。虽然从技术上讲,这不是所提问题的答案,但这很可能是尼尔斯想要的。也许他想详细说明。
    【解决方案2】:

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

    请参阅documentation 了解如何创建示例调度程序作业

    【讨论】:

      【解决方案3】:

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

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

      截断表注册;

      插入注册(从registration_mv@D3PROD_KMDW中选择*);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 2015-06-28
        • 1970-01-01
        • 1970-01-01
        • 2018-03-18
        • 2022-01-15
        相关资源
        最近更新 更多