我使用TOAD來執行我的過程並運行我的PL/SQL腳本。PL/SQL過程的異常函數行爲DBMS_OBFUSCATION_TOOLKIT.MD5
最近,我試着在PL/SQL的dbms_obfuscation_toolkit.md5()函數來檢索我作爲一個參數傳遞的字符串加密的文本。我發現,當我將該函數作爲單獨的語句調用時,該函數給出了正確的結果。但是,當我通過SELECT查詢調用它時,它不響應相同的格式。
下面,我已經提到了這個特殊的情況,當我在TOAD應用程序中運行它時出現的結果。
--CASE:1 (Proper result is obtained here)
DECLARE
vinput varchar2(255) := 'SRINI';
well varchar2(50);
BEGIN
WELL := DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>VINPUT);
dbms_output.put_line(well);
END;
輸出:!Áýg¿ZqÙ'¿Ke> IQ
--CASE:2 (Unexpected response is obtained here)
DECLARE
vinput varchar2(255) := 'SRINI';
well varchar2(50);
BEGIN
SELECT DBMS_OBFUSCATION_TOOLKIT.MD5(VINPUT)
INTO WELL
FROM DUAL;
dbms_output.put_line(well);
END;
錯誤輸出: ORA-06550:第5行,列37: PLS-00307:太多「MD5」的聲明與此呼叫匹配 ORA-06550:第5行第12列: PL/SQL:ORA-00904:「DBMS_OBFUSCATION_TOOLKIT」。「MD5」:無效標識符 ORA-06550:第5行第5列: PL/SQL:SQL語句ig nored
爲什麼結果中存在這樣的差異,儘管它們在語法和語義上都是正確的?請提供您的意見和反饋。
Err ...您的第二個示例不正確,可以從錯誤消息得出結論。 – user272735
抱歉這麼寫,仍然在這裏學習曲線。 – srajappa