我有一个表,有时会更新缺少“0”或多个连续零的记录。记录长度应为小数点后 8 位(共 10 个字符)。
例如 - 最初看起来像 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 个字符的记录需要第三次运行。
我猜应该在某个地方有另一个循环来继续检查记录,直到它都达到所需的长度。任何想法?