oracle - ORA-06550:第 5 行,第 16 列:PLS-00103:在预期以下情况之一时遇到符号“SELECT”:
问题描述
BEGIN
dbms_stats.set_table_prefs
( ownname => 'SALES_MART',
tabname => SELECT DISTINCT (table_name)
FROM all_part_tables
WHERE OWNER = 'SALES_MART',
pname => 'INCREMENTAL',
pvalue =>'TRUE'
);
END;
ORA-06550:第 5 行,第 16 列:PLS-00103:在预期以下情况之一时遇到符号“SELECT”:
( - + case mod new not null continue avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date pipe
& - + ; / at for mod 余数 rem 和 or 组有相交减号 order start union where connect || 多集
解决方案
DBMS_STATS.SET_TABLE_PREFS
过程接受表名作为参数。您不能通过 select 语句。
我假设您要对所有者所在的所有表执行此过程SALES_MART
,因此在这种情况下,您可以使用游标并在循环中调用此过程:
BEGIN
FOR part_tables_rec in (
SELECT DISTINCT table_name
FROM all_part_tables
WHERE OWNER = 'SALES_MART'
) LOOP
dbms_stats.set_table_prefs (
ownname =>'SALES_MART',
tabname => part_tables_rec.table_name,
pname => 'INCREMENTAL',
pvalue => 'TRUE' );
END LOOP;
END;
推荐阅读
- c++ - 为什么 jemalloc 分配 4096 字节内存的时间比其他 SMALL 内存要多?
- matlab - 记不清。键入 HELP MEMORY 供您选择
- raku - nativecast() 是否创建一个新容器?
- birt - 如何连接odoo vs birt?
- rust - 如何在补品中将数据传递给 protobuf `oneof`?
- react-native - React Native 如何在 Expo 的按钮标签栏周围显示新消息的数量?
- google-cloud-platform - 将 GKE 入口配置为仅允许 Google 请求 (Cloud Tasks)
- botframework - 如何将密钥库与 Bot Composer 集成
- configuration - 无法重新分配保留材料的 ram(Windows 10,HP 桌面)
- javascript - 创建多个 javascript 模块的实例