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