代码改变世界

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

2018-12-27 09:51  潇湘隐者  阅读(4730)  评论(0编辑  收藏  举报

 

同事玩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.plbowmaggrs.plbowmaggrb.plb 这三个文件,遂从另外一台标准版的Oracle 10g Copy这些文件到这个测试实例。测试发现,执行脚本owmctab.plb时遇到下面错误

 

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

 

 

 

clip_image001

 

 

查看了一下脚本,发现owmctab.plb还要引用owmt9012.plbowmt9013.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

 

 

 

clip_image002

 

 

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

 

 

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