2016-12-12 55 views
0

當我試圖收集使用GATHER_TABLE_STATS程序表的統計數據,我發現了以下錯誤:表統計信息收集期間'輸入值無效'?

ORA-20001: Invalid input values for pname 
ORA-06512: at "SYS.DBMS_STATS", line 31513 
ORA-06512: at line 2 

我正在收集統計信息的代碼是

BEGIN 
    DBMS_STATS.gather_table_stats ('OWNER', 'TABLE_NAME'); 
END; 
/

我的Oracle版本是Oracle數據庫11g企業版版本11.2.0.4.0 - 64位生產

+1

你怎麼從'選擇讓*從ALL_TABLES其中所有者= '所有者' 和TABLE_NAME =「TABLE_NAME'' ? – Aleksej

+0

@Aleksej爲了避免任何錯誤,在'gather_table_stats'過程中,我複製粘貼來自dba_tables的OWNER和TABLE_NAME值。實際所有者和table_name是不同的。您的查詢正在爲實際表格返回一行。 – Nitish

回答

0

我想你可能拼錯了OWNERTABLE_NAME參數。它的工作適合我,如下所示。

SQL> conn jay/jay 
Connected. 
SQL> select table_name from tabs; 

TABLE_NAME 
------------------------------ 
ROAD 
EVENT 
ALL_OBS 
ACCOUNT 
NVARCHAR2_EMAIL 
TABLEA 
T2 
MYTABLE 


8 rows selected. 

SQL> exec dbms_stats.gather_table_stats('JAY','ROAD'); 

PL/SQL procedure successfully completed. 

更新

按照我的Oracle支持文檔:755577.1,這可能是爲修補程序安裝後腳本使用一個補丁程序後無法正常運行。

您可能需要在$ORACLE_HOME/rdbms/admin目錄下使用execstat.sql重新初始化DBMS_STATS程序包。或者重新安裝DBMS_STATS
或者你可以打bug- 錯誤14479079:ORA-20001 GATHERING STATS CPU後2012年7月PATCH

+0

所有者和表名是正確的。爲了避免錯誤,我從'DBA_TABLES'粘貼了副本。 – Nitish

+0

@Nitish:請參閱更新。 – JSapkota