我想寫一個小的pl/sql腳本,需要一些幫助。首先,我有兩個表稱爲project1,project2。這兩個表都有一個名爲cust_code的列。substr on pl/sql
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位數字是否丟失。
Assaf。
在PLSQL'東西= null'永遠是假的,你需要'東西是空的' –
@ABCade:我認爲它幾乎是任何SQL,而不僅僅是PL/SQL。 :) – Neolisk
@Neilisk,感謝您的評論,您當然對 –