ORA-06550:第5行,第16列:PLS-00103:当遇到以下情况之一时遇到符号“SELECT”:[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 last min before sql stddev sum variance execute forall merge time timestamp interval date pipe
& - +; / at for mod remaining rem和or having having intersect minus 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;
试试这个。
begin
for p_tab_name_list in (SELECT owner,table_name
FROM all_part_tables
WHERE owner = 'SALES_MART'
and table_name not like 'BIN$%'
group by owner,table_name
) LOOP
dbms_stats.set_table_prefs (
ownname => p_tab_name_list.owner,
tabname => p_tab_name_list.table_name,
pname => 'INCREMENTAL',
pvalue => 'TRUE' );
end loop;
end;
以上是关于ORA-06550:第5行,第16列:PLS-00103:当遇到以下情况之一时遇到符号“SELECT”:[重复]的主要内容,如果未能解决你的问题,请参考以下文章
ORA-06550:第 13 行,第 4 列:PLS-00103:遇到“UPDATE” ORA-06550:第 15 行,第 3 列:PLS-00103:遇到符号“END”
ORA-06550:第 1 行,第 13 列:PLS-00382:表达式类型错误 ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略
ORA-06550:第 1 行,第 7 列:PLS-00201:必须声明标识符“PAYMENT_UPDATE” ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略
ORA-06550:第 1 行,第 7 列:\nPLS-00905:对象 TEST.CMPPROJECTPROC 无效\nORA-06550:第 1 行,第 7 列:\nPL/SQL:语句被忽略&qu