我有一张表,有时会更新记录,错过'0'或几个连续的零。记录长度应该是小数点后的8位数(总共10个字符)。PLSQL和循环
例如 - 最初看起来像1.12345600会落得像1.123456
我做了一个脚本,检查所有的记录长度,并增加了各短于10个字符“0”记录的记录。
问题是它只添加一次'0'。上面的例子看起来像1.1234560,而不是我想要的1.12345600。 这是脚本:
DECLARE
CURSOR dif IS
SELECT CUST_CODE, CUST_ID, CONTRACT_NUM, MSISDN
FROM project1;
BEGIN
FOR a in dif LOOP
IF LENGTH (a.CUST_CODE)<10
THEN
UPDATE project1
SET CUST_CODE=a.CUST_CODE||'0'
WHERE CUST_CODE=a.CUST_CODE;
END IF;
END LOOP;
commit;
END;
它完成运行后,单“0”被添加。如果我再次运行该脚本,它将为仍然少于10个字符的任何记录添加另一个“0”。有7个字符的Reocrds需要第三次运行。
我猜应该有另一个循环在某处继续检查记录,直到它达到所需的长度。 有什么想法?
非常感谢! 这样一个有用的功能(: – Shlomix