Oracle 11g 重建WMSYS用户的WMSYS.WM_CONCAT函数

当无此用户(WMSYS) 就会报错 ,没有WMSYS.WM_CONCAT方法:


解决办法:

1.下载 需要的文件 owmctab.plb  owmaggrs.plb      owmaggrb.plb  (按照顺序执行)下载地址:http://download.csdn.net/detail/huaishuming/8224909


2. 打开命令行 sqlpus , 用sys 登陆:


3. 下载后找到路径 前面加“@” 如: 

SQL> @C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb;


类型主体已创建。


SQL> commit;


提交完成。


参考文章:


 

用Oracle自带脚本 重建WMSYS用户的WMSYS.WM_CONCAT函数

分类: oracle_开发技能   3180人阅读  评论(4)  收藏  举报

在将Oracle8i升级到Oracle10g后,应用程序的部分视图编译不能通过。提示错误如下:

ORA-00904: "wm_concat":invalid identifier

查询DBA_OBJECTS视图,也未发现wm_concat的相关信息。

 

正常情况下查询,

SQL> SELECT * FROM DBA_OBJECTS WHERE OBJECT_NAME LIKE 'WM_CONCAT%';

应如下所示:

但在客户系统中,该SQL语句返回了0行。

可发现报错的原因,是因为系统从8i升级到10g时,没创建WMSYS用户及相关函数。

 

WM_CONCAT函数在某些场合,还是挺有用的。可以实现将多行数据合并到一行里,以逗号分隔。

一旦该函数异常,应用程序就可能报错。

 

解决办法:

简单来说,用SQLPLUS执行下一下几个脚本就可以了。

  1. SQL>@$ORACLE_HOME\RDBMS\ADMIN\owmctab.plb;  
  2. SQL>@$ORACLE_HOME\RDBMS\ADMIN\owmaggrs.plb  
  3. SQL>@$ORACLE_HOME\RDBMS\ADMIN\owmaggrb.plb  


下面我们来做测试,先从系统上删除用户WMSYS。

  1. SQL> select account_status,wmsys.wm_concat(username) from dba_users group by account_status;  
  2. select account_status,wmsys.wm_concat(username) from dba_users group by account_status;  
  3.                       *  
  4. 第 1 行出现错误:   
  5. ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效   
  6.   
  7.   
  8. SQL> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\owmctab.plb  
  9.   
  10. 函数已创建。  
  11.   
  12.   
  13. 授权成功。  
  14.   
  15.   
  16. PL/SQL 过程已成功完成。  
  17.   
  18.   
  19. 授权成功。  
  20.   
  21.   
  22. 过程已创建。  
  23.   
  24.   
  25. 类型已创建。  
  26.   
  27.   
  28. 类型已创建。  
  29.   
  30.   
  31. PL/SQL 过程已成功完成。  
  32.   
  33.   
  34. 表已创建。  
  35.   
  36.   
  37. 索引已创建。  
  38.   
  39.   
  40. 索引已创建。  
  41.   
  42.   
  43. 表已创建。  
  44.   
  45.   
  46. 序列已创建。  
  47.   
  48.   
  49. 表已创建。  
  50.   
  51.   
  52. 序列已创建。  
  53.   
  54.   
  55. 表已创建。  
  56.   
  57.   
  58. 已创建 1 行。  
  59.   
  60.   
  61. 提交完成。  
  62.   
  63.   
  64. 序列已创建。  
  65.   
  66.   
  67. 表已创建。  
  68.   
  69.   
  70. 表已创建。  
  71.   
  72.   
  73. 索引已创建。  
  74.   
  75.   
  76. 表已创建。  
  77.   
  78.   
  79. 已创建 1 行。  
  80.   
  81.   
  82. 类型已创建。  
  83.   
  84.   
  85. PL/SQL 过程已成功完成。  
  86.   
  87.   
  88. 类型已创建。  
  89.   
  90.   
  91. PL/SQL 过程已成功完成。  
  92.   
  93.   
  94. 表已创建。  
  95.   
  96.   
  97. 序列已创建。  
  98.   
  99.   
  100. 表已创建。  
  101.   
  102.   
  103. 已创建 1 行。  
  104.   
  105.   
  106. 已创建 1 行。  
  107.   
  108.   
  109. 已创建 1 行。  
  110.   
  111.   
  112. 已创建 1 行。  
  113.   
  114.   
  115. 已创建 1 行。  
  116.   
  117.   
  118. 已创建 1 行。  
  119.   
  120.   
  121. 已创建 1 行。  
  122.   
  123.   
  124. 提交完成。  
  125.   
  126.   
  127. 表已创建。  
  128.   
  129.   
  130. 表已创建。  
  131.   
  132.   
  133. 类型已创建。  
  134.   
  135.   
  136. 表已创建。  
  137.   
  138.   
  139. PL/SQL 过程已成功完成。  
  140.   
  141.   
  142. 表已创建。  
  143.   
  144.   
  145. 序列已创建。  
  146.   
  147.   
  148. 序列已创建。  
  149.   
  150.   
  151. 序列已创建。  
  152.   
  153.   
  154. 表已创建。  
  155.   
  156.   
  157. 表已创建。  
  158.   
  159.   
  160. 序列已创建。  
  161.   
  162.   
  163. 表已创建。  
  164.   
  165. INSERT INTO sys.exppkgact$ VALUES ('LT_EXPORT_PKG','SYS',1,1000)  
  166. *  
  167. 第 1 行出现错误:   
  168. ORA-00001: 违反唯一约束条件 (SYS.I_ACTPACKAGE)   
  169.   
  170.   
  171. INSERT INTO sys.exppkgact$ VALUES ('LT_EXPORT_PKG','SYS',2,1000)  
  172. *  
  173. 第 1 行出现错误:   
  174. ORA-00001: 违反唯一约束条件 (SYS.I_ACTPACKAGE)   
  175.   
  176.   
  177.   
  178. 提交完成。  
  179.   
  180.   
  181. 表已创建。  
  182.   
  183.   
  184. 表已创建。  
  185.   
  186.   
  187. 索引已创建。  
  188.   
  189.   
  190. 已创建 1 行。  
  191.   
  192.   
  193. 提交完成。  
  194.   
  195.   
  196. 索引已创建。  
  197.   
  198.   
  199. 表已创建。  
  200.   
  201.   
  202. 表已创建。  
  203.   
  204.   
  205. 已更新 1 行。  
  206.   
  207.   
  208. 提交完成。  
  209.   
  210.   
  211. 表已更改。  
  212.   
  213.   
  214. PL/SQL 过程已成功完成。  
  215.   
  216.   
  217. 表已更改。  
  218.   
  219.   
  220. 表已更改。  
  221.   
  222.   
  223. 表已更改。  
  224.   
  225.   
  226. 已更新 1 行。  
  227.   
  228.   
  229. 提交完成。  
  230.   
  231.   
  232. 索引已创建。  
  233.   
  234.   
  235. 索引已创建。  
  236.   
  237.   
  238. 索引已创建。  
  239.   
  240.   
  241. 索引已创建。  
  242.   
  243.   
  244. 索引已创建。  
  245.   
  246.   
  247. 索引已创建。  
  248.   
  249.   
  250. 索引已创建。  
  251.   
  252.   
  253. 索引已创建。  
  254.   
  255.   
  256. 索引已创建。  
  257.   
  258.   
  259. PL/SQL 过程已成功完成。  
  260.   
  261.   
  262. 索引已创建。  
  263.   
  264.   
  265. 索引已创建。  
  266.   
  267.   
  268. 索引已创建。  
  269.   
  270.   
  271. 已删除0行。  
  272.   
  273.   
  274. 已创建 1 行。  
  275.   
  276.   
  277. 提交完成。  
  278.   
  279.   
  280. 表已创建。  
  281.   
  282.   
  283. 索引已创建。  
  284.   
  285.   
  286. 已更新 1 行。  
  287.   
  288.   
  289. 提交完成。  
  290.   
  291.   
  292. 索引已删除。  
  293.   
  294.   
  295. 索引已创建。  
  296.   
  297.   
  298. 表已创建。  
  299.   
  300.   
  301. 表已更改。  
  302.   
  303.   
  304. 表已更改。  
  305.   
  306.   
  307. 表已创建。  
  308.   
  309.   
  310. 序列已创建。  
  311.   
  312.   
  313. 索引已删除。  
  314.   
  315.   
  316. 索引已创建。  
  317.   
  318.   
  319. 表已更改。  
  320.   
  321.   
  322. 已更新 1 行。  
  323.   
  324.   
  325. 提交完成。  
  326.   
  327. SQL> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\owmaggrs.plb  
  328.   
  329. 类型已创建。  
  330.   
  331.   
  332. PL/SQL 过程已成功完成。  
  333.   
  334.   
  335. 函数已创建。  
  336.   
  337.   
  338. PL/SQL 过程已成功完成。  
  339.   
  340.   
  341. 同义词已创建。  
  342.   
  343. SQL> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\owmaggrb.plb  
  344.   
  345. 类型主体已创建。  
  346.   
  347. SQL> select account_status,wmsys.wm_concat(username) from dba_users  
  348.   2  group by account_status;  
  349.   
  350. ACCOUNT_STATUS                                                                    
  351. --------------------------------                                                  
  352. WMSYS.WM_CONCAT(USERNAME)                                                         
  353. --------------------------------------------------------------------------------  
  354. EXPIRED & LOCKED                                                                  
  355. SCOTT,TSMSYS,MDDATA,DIP,ORDSYS,DMSYS,CTXSYS,XDB,SI_INFORMTN_SCHEMA,OUTLN,OLAPSYS  
  356. ,ORDPLUGINS,ANONYMOUS,WMSYS,EXFSYS,MDSYS                                          
  357.                                                                                   
  358. OPEN                                                                              
  359. AAA,WSFX,SYSTEM,SYS,MGMT_VIEW,SYSMAN,DBSNMP,BAS,TEST,ADMIN,TESTI


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值