CREATE OR REPLACE PROCEDURE PRO_TEST2 AS A NUMBER(6); BEGIN select count(1) INTO A from code2value; --计算字典表总数量 <<fst_loop>> LOOP UPDATE TEST TTT SET VALUE = (SELECT VALUE FROM ( SELECT T1.CODE,REPLACE(T1.VALUE,T2.CODE,T2.VALUE) VALUE --将字典每行与业务表比较替换 FROM TEST T1 LEFT JOIN (SELECT TT.*,ROWNUM RN FROM code2value TT) T2 ON T2.RN=TO_CHAR(A) --遍历字典表中的所有行 ) T WHERE T.CODE=TTT.CODE); A:=A-1; IF A<1 THEN exit fst_loop; --比较替换完所有的字典后,循环结束 END IF; COMMIT; END LOOP; END;只想到了这种开销很大的方法。。
AS
A NUMBER(6);
BEGIN
select count(1) INTO A from code2value; --计算字典表总数量
<<fst_loop>>
LOOP
UPDATE TEST TTT SET VALUE = (SELECT VALUE FROM (
SELECT T1.CODE,REPLACE(T1.VALUE,T2.CODE,T2.VALUE) VALUE --将字典每行与业务表比较替换
FROM TEST T1
LEFT JOIN (SELECT TT.*,ROWNUM RN FROM code2value TT) T2 ON T2.RN=TO_CHAR(A)
--遍历字典表中的所有行
) T WHERE T.CODE=TTT.CODE);
A:=A-1;
IF A<1 THEN
exit fst_loop; --比较替换完所有的字典后,循环结束
END IF;
COMMIT;
END LOOP;
END;只想到了这种开销很大的方法。。