暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 生成和执行任务脚本

原创 Asher.HU 2021-02-04
649


您可以使用该过程DBMS_ADVISOR.GET_TASK_SCRIPT为SQL Access Advisor建议创建SQL语句的脚本。该脚本是一个可以包含可执行SQL文件DROPCREATEALTER报表。

对于新对象,将通过使用用户指定的名称模板自动生成实例化视图,实例化视图日志和索引的名称。在尝试执行之前,请检查生成的SQL脚本。

假设条件

本教程假定您要保存和执行一个脚本,该脚本包含 执行SQL Access Advisor任务 ”中生成的建议

要保存并执行SQL脚本:

  1. 以管理员身份将SQL * Plus连接到数据库。
  2. 创建目录对象并授予读取和写入该对象的权限。

    例如,使用以下语句:

    CREATE DIRECTORY ADVISOR_RESULTS AS '/tmp';
    GRANT READ ON DIRECTORY ADVISOR_RESULTS TO PUBLIC;
    GRANT WRITE ON DIRECTORY ADVISOR_RESULTS TO PUBLIC;
    
  3. 以身份连接到数据库sh,然后将脚本保存到文件中。

    例如,使用以下语句:

    EXECUTE DBMS_ADVISOR.CREATE_FILE(DBMS_ADVISOR.GET_TASK_SCRIPT('MYTASK'),
    'ADVISOR_RESULTS', 'advscript.sql');
    
  4. 使用文本编辑器查看脚本的内容。

    以下是此过程生成的脚本的片段:

    Rem  Username:        SH
    Rem  Task:            MYTASK
    Rem  Execution date:
    Rem
     
    Rem
    Rem  Repartitioning table "SH"."SALES"
    Rem
     
    SET SERVEROUTPUT ON
    SET ECHO ON
     
    Rem
    Rem Creating new partitioned table
    Rem
      CREATE TABLE "SH"."SALES1"
       (    "PROD_ID" NUMBER,
            "CUST_ID" NUMBER,
            "TIME_ID" DATE,
            "CHANNEL_ID" NUMBER,
            "PROMO_ID" NUMBER,
            "QUANTITY_SOLD" NUMBER(10,2),
            "AMOUNT_SOLD" NUMBER(10,2)
       ) PCTFREE 5 PCTUSED 40 INITRANS 1 MAXTRANS 255
     NOCOMPRESS  NOLOGGING
      TABLESPACE "EXAMPLE"
    PARTITION BY RANGE ("TIME_ID") INTERVAL( NUMTOYMINTERVAL( 1, 'MONTH')) 
    ( PARTITION VALUES LESS THAN (TO_DATE(' 1998-02-01 00:00:00', 
    'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) );
    .
    .
    .
    
  5. (可选)在SQL * Plus中,运行SQL脚本。

    例如,输入以下命令:

    @/tmp/advscript.sql

也可以看看:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论