PL SQL遇到符号" DBMS_STATS"

时间:2016-06-14 14:03:28

标签: plsql

我已经创建了脚本,以便为多个表更新DBMS_STATS.SET_TABLE_PREFS。 我试图以SYS和scheme用户身份运行此脚本,在这两种情况下我都收到以下错误:

  

第27行的错误:ORA-06550:第27行,第8栏:   PLS-00103:遇到符号" DBMS_STATS"期待以下之一:=。 (@   %;符号":="取而代之的是" DBMS_STATS"接着说。   ORA-06550:第28行,第8栏:   PLS-00103:遇到符号   " DBMS_STATS"期待以下之一:=。 (@%; The   符号":="取而代之的是" DBMS_STATS"继续。

当我只使用DBMS_OUTPUT.PUT_LINE输出表名时,我没有收到任何错误。

DECLARE 
    TYPE TABLE_NAME_TABLE IS TABLE OF USER_PART_TABLES.TABLE_NAME%TYPE;
    lv_TablesList           TABLE_NAME_TABLE;
    lv_Vc2_TableName        VARCHAR2(100);

    CURSOR tables IS 
                SELECT DISTINCT
                                DBA_TABLES.TABLE_NAME
                            FROM
                                DBA_TABLES
                            WHERE
                                DBA_TABLES.OWNER='MYUSER' AND DBA_TABLES.PARTITIONED = 'YES';
BEGIN 

OPEN tables;
FETCH tables BULK COLLECT INTO lv_TablesList;
CLOSE tables;

   FOR I IN 1 .. lv_TablesList.COUNT LOOP


    DBMS_OUTPUT.PUT_LINE('Update settings for ' || TO_CHAR(lv_TablesList(I)));
    EXEC DBMS_STATS.SET_TABLE_PREFS('MYUSER',TO_CHAR(lv_TablesList(I)),'INCREMENTAL','TRUE');
    EXEC DBMS_STATS.SET_TABLE_PREFS('MYUSER',TO_CHAR(lv_TablesList(I)),'GRANULARITY','AUTO');
    DBMS_OUTPUT.PUT_LINE('Updated settings for ' || TO_CHAR(lv_TablesList(I)));

   END LOOP;

END;

请告知我做错了什么?

0 个答案:

没有答案