您可以使用该过程DBMS_ADVISOR.GET_TASK_SCRIPT为SQL Access Advisor建议创建SQL语句的脚本。该脚本是一个可以包含可执行SQL文件DROP,CREATE和ALTER报表。
对于新对象,将通过使用用户指定的名称模板自动生成实例化视图,实例化视图日志和索引的名称。在尝试执行之前,请检查生成的SQL脚本。
假设条件
本教程假定您要保存和执行一个脚本,该脚本包含“ 执行SQL Access Advisor任务 ”中生成的建议。
要保存并执行SQL脚本:
- 以管理员身份将SQL * Plus连接到数据库。
- 创建目录对象并授予读取和写入该对象的权限。
例如,使用以下语句:
CREATE DIRECTORY ADVISOR_RESULTS AS '/tmp'; GRANT READ ON DIRECTORY ADVISOR_RESULTS TO PUBLIC; GRANT WRITE ON DIRECTORY ADVISOR_RESULTS TO PUBLIC; - 以身份连接到数据库
sh,然后将脚本保存到文件中。例如,使用以下语句:
EXECUTE DBMS_ADVISOR.CREATE_FILE(DBMS_ADVISOR.GET_TASK_SCRIPT('MYTASK'), 'ADVISOR_RESULTS', 'advscript.sql'); - 使用文本编辑器查看脚本的内容。
以下是此过程生成的脚本的片段:
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')) ); . . . - (可选)在SQL * Plus中,运行SQL脚本。
例如,输入以下命令:
@/tmp/advscript.sql
也可以看看:
- Oracle Database SQL语言参考中的
CREATE DIRECTORY语法 - Oracle Database PL / SQL软件包和类型参考以了解有关该
GET_TASK_SCRIPT功能的 更多信息
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




