CREATE OR REPLACE FUNCTION "DECRYPT4" (
p_bsm in varchar2
)
return varchar2 IS
l_data2 varchar2(255);
l_key varchar2(100);
opencmd varchar2(2000);
begin if p_bsm is null then
return '';
end if;
opencmd:='alter system set encryption wallet open authenticated by "tddj"';
execute immediate opencmd;select magic_key into l_key from decrypt_key;
dbms_obfuscation_toolkit.DESDecrypt
( input_string => p_bsm,
key_string => l_key,
decrypted_string=> l_data2 ); l_data2 := rtrim( l_data2, chr(0) );
return(l_data2);
end DECRYPT4;我在调用这个函数的时候提示“在查询或DML中无法执行DDL,提交或回退”,主要是“opencmd:='alter system set encryption wallet open authenticated by "tddj"';
execute immediate opencmd;”这个语句的问题吧 但是我不知道该怎么写 求教
p_bsm in varchar2
)
return varchar2 IS
l_data2 varchar2(255);
l_key varchar2(100);
opencmd varchar2(2000);
begin if p_bsm is null then
return '';
end if;
opencmd:='alter system set encryption wallet open authenticated by "tddj"';
execute immediate opencmd;select magic_key into l_key from decrypt_key;
dbms_obfuscation_toolkit.DESDecrypt
( input_string => p_bsm,
key_string => l_key,
decrypted_string=> l_data2 ); l_data2 := rtrim( l_data2, chr(0) );
return(l_data2);
end DECRYPT4;我在调用这个函数的时候提示“在查询或DML中无法执行DDL,提交或回退”,主要是“opencmd:='alter system set encryption wallet open authenticated by "tddj"';
execute immediate opencmd;”这个语句的问题吧 但是我不知道该怎么写 求教
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货