oracle
有表tb1存储着一些姓名,结构如下
id xm
1 ^1V6FV10V2CV6GV1KVKJV6GV1KV1C
2 ^1V6GV1KVK2V6FV26VJKV6GV1KV1C
有表tb2(密码字典)
存储着汉字与其对应加密码结构如下
key pas
张 FV10V2C
三 GV1KVKJ
丰 GV1KV1C
上 GV1KVK2
官 FV26VJK
tb1.xm字段,是按如下规则填充的
^1V6+第一个字的加密码+V6+第二个字的加密码+V6+第三个字的加密码(如果有第个字,类推)
如张三丰的加密数据为:^1V6FV10V2CV6GV1KVKJV6GV1KV1C
求一解密储存过程
更新tb1.xm字段,显示汉字明文
如‘^1V6FV10V2CV6GV1KVKJV6GV1KV1C’更新为‘张三丰’
‘^1V6GV1KVK2V6FV26VJKV6GV1KV1C’ 更新为’上官丰’
------解决方案--------------------
刚刚给你回的
解密:
declare
v1 varchar2(10);
v2 varchar2(10);
begin
for a in (select t.id, regexp_replace(t.xm, '\^1V6
------解决方案--------------------
V6', ',') xm from tb1 t) loop
for b in (select regexp_substr(a.xm, '[^,]+', 1, level) xm
from dual
connect by level <= regexp_count(a.xm, ',')) loop
--dbms_output.put_line(b.xm);
select t.key into v1 from tb2 t where t.pas = b.xm;
v2 := v2
------解决方案--------------------
v1;
--dbms_output.put_line(v2);
end loop;
update tb1 set tb1.xm = v2 where tb1.id = a.id;
v2 := '';
end loop;
commit;
end;