同事玩Docker,在Docker里面啟了一個Oracle 10g Express版本,在測試過程中遇到了ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier錯誤。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
我去處理的時候,發現Oracle 10g Express版本的$ORACLE_HOME/rdbms/admin目錄下面根本沒有owmctab.plb、owmaggrs.plb、owmaggrb.plb 這三個文件,遂從另外一台標准版的Oracle 10g 中Copy這些文件到這個測試實例。測試發現,執行腳本owmctab.plb時遇到下面錯誤
SQL> @?/rdbms/admin/owmctab.plb
查看了一下腳本,發現owmctab.plb還要引用owmt9012.plb、owmt9013.plb文件,所以,如果$ORACLE_HOME/rdbms/admin目錄下面如果沒有這些文件的話,需要的是5個文件。
$ ls -lrt owm*
-rw-rw-r--. 1 oracle dba 14889 Feb 2 2008 owmctab.plb
-rw-rw-r--. 1 oracle dba 1280 Feb 2 2008 owmt9013.plb
-rw-rw-r--. 1 oracle dba 4000 Feb 2 2008 owmt9012.plb
-rw-rw-r--. 1 oracle dba 1168 Feb 2 2008 owmaggrs.plb
-rw-rw-r--. 1 oracle dba 627 Feb 2 2008 owmaggrb.plb
正常情況下,這些文件默認位於$ORACLE_HOME/rdbms/admin下面,只需執行下面腳本創建對象即可。在Oracle 10g Express版本中copy上面5個文件后,執行下面腳本也能解決問題。
SQL> @?/rdbms/admin/owmctab.plb
SQL> @?/rdbms/admin/owmaggrs.plb
SQL> @?/rdbms/admin/owmaggrb.plb