同事玩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