ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier

时间:2023-03-10 03:30:24
ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier

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

ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier

查看了一下脚本,发现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

ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier

正常情况下,这些文件默认位于$ORACLE_HOME/rdbms/admin下面,只需执行下面脚本创建对象即可。在Oracle 10g Express版本中copy上面5个文件后,执行下面脚本也能解决问题。

SQL> @?/rdbms/admin/owmctab.plb

SQL> @?/rdbms/admin/owmaggrs.plb

SQL> @?/rdbms/admin/owmaggrb.plb