sql developer每日表删除/创建任务

sql developer每日表删除/创建任务,sql,oracle,macros,oracle-sqldeveloper,Sql,Oracle,Macros,Oracle Sqldeveloper,我每天都要更新数据库中的两个表。。。 一个是基于从其他源运行的报告,我手动删除该表并从excel导入该表以替换它 然后,我需要运行一个SQL代码,该代码使用第一步中刷新的数据执行计算,并创建表,然后用于Tableau 简言之,步骤如下: 下表1清洗 从excel手动插入数据,如表1所示 滴台清洗 创建表格表格作为 这里是SQL计算 为table_tableau创建索引 在…上授予选择权。。。要授予对该表的访问权限 我的问题是,有没有一种方法(如果我在同一文件夹中以相同的名称存储文件)来存储SQL

我每天都要更新数据库中的两个表。。。 一个是基于从其他源运行的报告,我手动删除该表并从excel导入该表以替换它

然后,我需要运行一个SQL代码,该代码使用第一步中刷新的数据执行计算,并创建表,然后用于Tableau

简言之,步骤如下:

  • 下表1清洗
  • 从excel手动插入数据,如表1所示
  • 滴台清洗
  • 创建表格表格作为 这里是SQL计算
  • 为table_tableau创建索引
  • 在…上授予选择权。。。要授予对该表的访问权限

  • 我的问题是,有没有一种方法(如果我在同一文件夹中以相同的名称存储文件)来存储SQL将执行的任务序列?有点像一键宏?

    在我看来,简而言之,步骤应该是:

    • 确保将Excel文件保存为CSV文件(文本文件)

      • 为什么??因为以后您将把它用作外部表。你只是从中读取数据,没有什么特别的事情要做;只需使用创建外部表时使用的相同名称命名CSV文件
    • 以下步骤只应在今天执行一次,决不能再执行;在Oracle中,我们通常不进行日常排泄和重新创建表

    • 日常任务:无需使用
      表1
      执行任何操作;一旦替换CSV文件,您将只看到新数据。没有加载数据,什么都没有。创建一个存储过程,它将完成剩余的工作

      CREATE OR REPLACE PROCEDURE p_daily AS
      BEGIN
        EXECUTE IMMEDIATE 'TRUNCATE TABLE table_tableau';
        INSERT INTO table_tableau SELECT ... calculations here FROM table1;
      END;
      
    • 最后:如果您可以在同一时间(例如上午8:00)自动获取CSV文件,则可以使用
      DBMS\u作业
      DBMS\u调度程序
      来安排
      p\u DAILY
      过程在一天中的所需时间(例如08:30)运行

      如果您将
      UTL\u MAIL
      call包含在
      p\u DAILY
      中,该过程将通知您(或其他人)该工作已完成


    这意味着:你只要坐下来等待,Oracle会为你做一切。

    从我的观点来看,简而言之,应该是:

    • 确保将Excel文件保存为CSV文件(文本文件)

      • 为什么??因为以后您将把它用作外部表。你只是从中读取数据,没有什么特别的事情要做;只需使用创建外部表时使用的相同名称命名CSV文件
    • 以下步骤只应在今天执行一次,决不能再执行;在Oracle中,我们通常不进行日常排泄和重新创建表

    • 日常任务:无需使用
      表1
      执行任何操作;一旦替换CSV文件,您将只看到新数据。没有加载数据,什么都没有。创建一个存储过程,它将完成剩余的工作

      CREATE OR REPLACE PROCEDURE p_daily AS
      BEGIN
        EXECUTE IMMEDIATE 'TRUNCATE TABLE table_tableau';
        INSERT INTO table_tableau SELECT ... calculations here FROM table1;
      END;
      
    • 最后:如果您可以在同一时间(例如上午8:00)自动获取CSV文件,则可以使用
      DBMS\u作业
      DBMS\u调度程序
      来安排
      p\u DAILY
      过程在一天中的所需时间(例如08:30)运行

      如果您将
      UTL\u MAIL
      call包含在
      p\u DAILY
      中,该过程将通知您(或其他人)该工作已完成


    这意味着:你只要坐着等待,Oracle会为你做一切。

    使用存储过程。使用存储过程。