Oracle創建WM_CONCAT函數


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM