Oracle: How to call an overloaded procedure?
select DBMS_OBFUSCATION_TOOLKIT.DESEncrypt('x','y') from dual;
ORA-06553: PLS-307: Too many declarations of "DESENCRYPT" match this call
06553. 00000 - "PLS-%s: %s"
*Cause:
*Action:
select DBMS_OBFUSCATION_TOOLKIT.DesEncrypt(INPUT_STRING=>'11112abc',KEY_STRING=>'4578ccde')
from dual ;
create or replace
function DesEncrypt(pinputString IN VARCHAR2 , pKeyString in VARCHAR2) RETURN varchar2
IS
BEGIN
return DBMS_OBFUSCATION_TOOLKIT.DesEncrypt(INPUT_STRING=>INPUTSTRING,KEY_STRING=>KEYSTRING);
END DesEncrypt;
/
select DesEncrypt('11112abc' , '4578ccde') from dual ;
select DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(input_string=>'x',key_string=>'y')
from dual;
create or replace function crypt(p_str in varchar2, p_key in varchar2) return varchar2
as
l_data varchar2(255);
begin
l_data := rpad(p_str, (trunc(length(p_str)/8)+1)*8,chr(0));
dbms_obfuscation_toolkit.DESEncrypt
(input_string=>l_data,
key_string=>p_key,
encrypted_string=>l_data);
return l_data;
end;
create or replace function decrypt(p_str in varchar2, p_key in varchar2) return varchar2
as
l_data varchar2(255);
begin
dbms_obfuscation_tookit.DESDecrypt
(input_string=>p_str,
key_string=>p_key,
decrypted_string=>l_data);
return rtrim(l_data,chr(0));
end;
declare
l_data varchar2(100);
l_key varchar2(100);
l_encrypted varchar2(100);
l_decrypted varchar2(100);
begin
l_data := 'This is secret!!!';
l_key := 'My secret key';
dbms_output.put_line(l_data);
l_encrypted := crypt(l_data, l_key);
dbms_output.put_line(l_encrypted);
l_decrypted := decrypt(l_encrypted, l_key);
dbms_output.put_line(l_decrypted);
end;