dbms_obfuscation_toolkit.md5(input_string => pw,checksum_string => epw) 我用的是ORACLE817:PACKAGE dbms_obfuscation_toolkit AS ------------------------------- TYPES ------------------------------------ -- Types used to make it easier for the user to reserve the correct -- amount of memory for a checksum. SUBTYPE varchar2_checksum IS VARCHAR2(2000); SUBTYPE raw_checksum IS RAW(2000); ----------------------------- CONSTANTS ----------------------------------- -- Triple DES modes TwoKeyMode INTEGER := 0; ThreeKeyMode INTEGER := 1; ---------------------- FUNCTIONS AND PROCEDURES --------------------------- ---------------------------- DATA ENCRYPTION ------------------------------ -- The following routines encrypt and decrypt data. -- There are two versions of each procedure and function: one for raw data -- and the other for strings. --------------------------------------------------------------------------- -- DES PROCEDURE DESEncrypt(input IN RAW, key IN RAW, encrypted_data OUT RAW); FUNCTION DESEncrypt(input IN RAW, key IN RAW) RETURN RAW;
PROCEDURE DESEncrypt(input_string IN VARCHAR2, key_string IN VARCHAR2, encrypted_string OUT VARCHAR2); FUNCTION DESEncrypt(input_string IN VARCHAR2, key_string IN VARCHAR2) RETURN VARCHAR2; PROCEDURE DESDecrypt(input IN RAW, key IN RAW, decrypted_data OUT RAW); FUNCTION DESDecrypt(input IN RAW, key IN RAW) RETURN RAW; PROCEDURE DESDecrypt(input_string IN VARCHAR2, key_string IN VARCHAR2, decrypted_string OUT VARCHAR2); FUNCTION DESDecrypt(input_string IN VARCHAR2, key_string IN VARCHAR2) RETURN VARCHAR2; -- Triple DES PROCEDURE DES3Encrypt(input IN RAW, key IN RAW, encrypted_data OUT RAW, which IN PLS_INTEGER DEFAULT TwoKeyMode); FUNCTION DES3Encrypt(input IN RAW, key IN RAW, which IN PLS_INTEGER DEFAULT TwoKeyMode) RETURN RAW;
PROCEDURE DES3Encrypt(input_string IN VARCHAR2, key_string IN VARCHAR2, encrypted_string OUT VARCHAR2, which IN PLS_INTEGER DEFAULT TwoKeyMode); FUNCTION DES3Encrypt(input_string IN VARCHAR2, key_string IN VARCHAR2, which IN PLS_INTEGER DEFAULT TwoKeyMode) RETURN VARCHAR2; PROCEDURE DES3Decrypt(input IN RAW, key IN RAW, decrypted_data OUT RAW, which IN PLS_INTEGER DEFAULT TwoKeyMode); FUNCTION DES3Decrypt(input IN RAW, key IN RAW, which IN PLS_INTEGER DEFAULT TwoKeyMode) RETURN RAW; PROCEDURE DES3Decrypt(input_string IN VARCHAR2, key_string IN VARCHAR2, decrypted_string OUT VARCHAR2, which IN PLS_INTEGER DEFAULT TwoKeyMode); FUNCTION DES3Decrypt(input_string IN VARCHAR2, key_string IN VARCHAR2, which IN PLS_INTEGER DEFAULT TwoKeyMode) RETURN VARCHAR2; -------------------------------- MD5 -------------------------------------- -- The following routines generate MD5 hashes of data. -- There are two versions: one for raw data and the other for strings. --------------------------------------------------------------------------- PROCEDURE MD5(input IN RAW, checksum OUT raw_checksum); FUNCTION MD5(input IN RAW) RETURN raw_checksum; PROCEDURE MD5(input_string IN VARCHAR2, checksum_string OUT varchar2_checksum); FUNCTION MD5(input_string IN VARCHAR2) RETURN varchar2_checksum;END dbms_obfuscation_toolkit;
大哥 oracle存储函数中 dyndql:='select var,a.aaa from aaa a' 变量var如何引用,谁知道,帮帮忙,谢谢了
大哥 oracle存储函数中 dyndql:='select var,a.aaa from aaa a' 变量var如何引用,谁知道,帮帮忙,谢谢了 Vdyndql:='select var,a.aaa from aaa a' Execute immediate Vdynsql using var; 这样为什么不行???
呵呵 你这是我付费你享受了... 我也不是很清楚的...这样你看能行吗. ... Vdyndql:='select a.aaa from aaa a '; Execute immediate Vdyndql||into var;
Vdyndql:='select '||var||',a.aaa from aaa a'; Execute immediate Vdynsql;
我用的是ORACLE817:PACKAGE dbms_obfuscation_toolkit AS
------------------------------- TYPES ------------------------------------
-- Types used to make it easier for the user to reserve the correct
-- amount of memory for a checksum. SUBTYPE varchar2_checksum IS VARCHAR2(2000);
SUBTYPE raw_checksum IS RAW(2000); ----------------------------- CONSTANTS -----------------------------------
-- Triple DES modes
TwoKeyMode INTEGER := 0;
ThreeKeyMode INTEGER := 1; ---------------------- FUNCTIONS AND PROCEDURES --------------------------- ---------------------------- DATA ENCRYPTION ------------------------------
-- The following routines encrypt and decrypt data.
-- There are two versions of each procedure and function: one for raw data
-- and the other for strings.
--------------------------------------------------------------------------- -- DES
PROCEDURE DESEncrypt(input IN RAW,
key IN RAW,
encrypted_data OUT RAW); FUNCTION DESEncrypt(input IN RAW,
key IN RAW)
RETURN RAW;
PROCEDURE DESEncrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
encrypted_string OUT VARCHAR2); FUNCTION DESEncrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2)
RETURN VARCHAR2; PROCEDURE DESDecrypt(input IN RAW,
key IN RAW,
decrypted_data OUT RAW); FUNCTION DESDecrypt(input IN RAW,
key IN RAW)
RETURN RAW; PROCEDURE DESDecrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
decrypted_string OUT VARCHAR2); FUNCTION DESDecrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2)
RETURN VARCHAR2; -- Triple DES
PROCEDURE DES3Encrypt(input IN RAW,
key IN RAW,
encrypted_data OUT RAW,
which IN PLS_INTEGER
DEFAULT TwoKeyMode); FUNCTION DES3Encrypt(input IN RAW,
key IN RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode)
RETURN RAW;
PROCEDURE DES3Encrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
encrypted_string OUT VARCHAR2,
which IN PLS_INTEGER
DEFAULT TwoKeyMode); FUNCTION DES3Encrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode)
RETURN VARCHAR2; PROCEDURE DES3Decrypt(input IN RAW,
key IN RAW,
decrypted_data OUT RAW,
which IN PLS_INTEGER
DEFAULT TwoKeyMode); FUNCTION DES3Decrypt(input IN RAW,
key IN RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode)
RETURN RAW; PROCEDURE DES3Decrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
decrypted_string OUT VARCHAR2,
which IN PLS_INTEGER
DEFAULT TwoKeyMode); FUNCTION DES3Decrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode)
RETURN VARCHAR2; -------------------------------- MD5 --------------------------------------
-- The following routines generate MD5 hashes of data.
-- There are two versions: one for raw data and the other for strings.
--------------------------------------------------------------------------- PROCEDURE MD5(input IN RAW,
checksum OUT raw_checksum); FUNCTION MD5(input IN RAW)
RETURN raw_checksum; PROCEDURE MD5(input_string IN VARCHAR2,
checksum_string OUT varchar2_checksum); FUNCTION MD5(input_string IN VARCHAR2)
RETURN varchar2_checksum;END dbms_obfuscation_toolkit;
Password:=dbms_obfuscation_toolkit.md5(p_str);有返回值但是跟PHP中的MD5函数生成的不是一样.象加密123456 php: e10adc3949ba59abbe56e057f20f883e oracle: ��I篩V郬��;
不知道怎么样能解决这个问题..我现要实现他们是一致的才行..
或者这样
dbms_obfuscation_toolkit.md5(p_str,p_Password); (这样是匹配的函数太多 如非将p_str定义为NUMBER类型)...
请教! 谢谢..
v_out Varchar2(300);
v_str varchar2(30);
begin
v_str:='123456';
v_out:=rawtohex(utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string =>v_str)));
dbms_output.put_line(v_out);
end;
/你看一下这应该就是你要的结果!!!
oracle存储函数中
dyndql:='select var,a.aaa from aaa a'
变量var如何引用,谁知道,帮帮忙,谢谢了
大哥
oracle存储函数中
dyndql:='select var,a.aaa from aaa a'
变量var如何引用,谁知道,帮帮忙,谢谢了
Vdyndql:='select var,a.aaa from aaa a'
Execute immediate Vdynsql using var;
这样为什么不行???
我也不是很清楚的...这样你看能行吗. ...
Vdyndql:='select a.aaa from aaa a ';
Execute immediate Vdyndql||into var;
Execute immediate Vdynsql;