我正在尝试编写一个小的 pl/sql 脚本并需要一些帮助。首先,我有 2 个名为 project1 和 project2 的表。这两个表都有一个名为 cust_code 的列。
cust_code 值是 varchar2 类型。值始终以 1 开头。(数字 1,小数点)和 8 位数字。例如 1.10002332
当我将数据导入 project1 表时,如果最后一位为 0,例如 1.22321630,则删除最后一个零,然后小数点后只有七位。在这种情况下,它将是 1.2232163
我要编写的脚本将检查小数点后是否只有 7 位,并将该记录插入到 project2 表中。这就是我想出的
DECLARE
CURSOR dif IS
SELECT CUST_CODE, CUST_ID, CONTRACT_NUM, MSISDN
FROM project1
WHERE CUST_CODE IN (SELECT CUST_CODE FROM CUST_ALL);
BEGIN
FOR a in dif LOOP
IF SUBSTR(a.CUST_CODE, 10)=null
THEN
INSERT INTO project2 (cust_code)
VALUES(a.CUST_CODE);
END IF;
END LOOP;
commit;
END;
脚本运行没有错误,但没有任何反应。在 substr 函数上,当我选择与 NULL 不同的值时,它会起作用。我不知道如何检查第 8 位是否丢失。
阿萨夫。