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

ORA-06550 第 10 行,第 41 列:PLS-00103:在预期以下情况之一时遇到符号“,”:

“ORA-06550: 第 1 行, 第 7 列”解决方法