Oracle创建WM_CONCAT函数
WM_CONCAT这个函数会出错,所以从 11g开始。官方不认可 WM_CONCAT.然后就没这个函数了,
下面就是创建WM_CONCAT这个函数的步骤
第一步:
下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb
第二步:
用sqlplus登录:CONN SYS/PASS_WORD AS SYSDBA;
一、忘记除SYS、SYSTEM用户之外的用户的登录密码。
用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA;
使用如下语句修改用户的密码: ALTER USER user_name IDENTIFIED BY “newpass”;
注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988: 口令缺失或无效
二、忘记SYS用户,或者是SYSTEM用户的密码。
如果是忘记SYSTEM用户的密码,可以用SYS用户登录。然后用ALTER USER 命令修改密码:
CONN SYS/PASS_WORD AS SYSDBA;
ALTER USER SYSTEM IDENTIFIED BY “newpass”;
如果是忘记SYS用户的密码,可以用SYSTEM用户登录。然后用ALTER USER 命令修改密码。
CONN SYSTEM/PASS_WORD ;
ALTER USER SYSTEM IDENTIFIED BY “newpass”;
三、如果SYS,SYSTEM用户的密码都忘记或是丢失。
可以使用ORAPWD.EXE 工具修改密码。
开始菜单->运行->输入‘CMD’,打开命令提示符窗口,输入如下命令:
orapwd file=D:\oracle10g\database\pwdctcsys.ora password=newpass
这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下的\database目录下。
这个密码是修改sys用户的密码。除sys其他用户的密码不会改变。
第三步:
上面的三个文件下载后找到路径 前面加“@” 如: SQL> @C:\Users\ylg\Desktop\oracleowmaggrb.plb;
看自己的Oracle是否有这个函数的sql为:
SELECT * FROM DBA_OBJECTS WHERE OBJECT_NAME LIKE ‘WM_CONCAT%’;
select account_status,wmsys.wm_concat(username) from dba_users group by account_status;
如果没有WM_CONCAT函数的话依次执行:
@C:\Users\ylg\Desktop\owmctab.plb;
@C:\Users\ylg\Desktop\owmaggrs.plb
@C:\Users\ylg\Desktop\owmaggrb.plb
这样就创建建成功了赶快去试试
SELECT deptno, wmsys.wm_concat(ename) nameslist
FROM emp
GROUP BY deptno