|
〇〇 发表于 2014-4-22 12:57 ![]()
不等价
SQL>select mytrs_ex('123','189','567') from dual;
create or replace function mytrs_e1(
a varchar,
b varchar,
c varchar)
return varchar
is
d varchar(10);
idx int;
begin
if c is not null then
for i in 1..length(a) loop
idx := locate(substr(a, i, 1), b);
if idx > 0 then
d := d || substr(c, idx, 1);
else
d := d ||substr(a, i, 1);
end if;
end loop;
return d;
else
return null;
end if;
end;
/
SQL>select max(mytrs_ex(rn,'1234567890','abcdefghij')) from t100k;
行号 MAX(MYTRS_EX(RN,'1234567890','abcdefghij'))
---------- -------------------------------------------
1 ijjjj
已用时间: 942.741(毫秒). 执行号:71.
SQL>select max(mytrs_e1(rn,'1234567890','abcdefghij')) from t100k;
行号 MAX(MYTRS_E1(RN,'1234567890','abcdefghij'))
---------- -------------------------------------------
1 ijjjj
已用时间: 00:00:01.091. 执行号:72. |
|