我更新在temp_docmeta表xprojecttype並試圖通過包括"d.xproject_id NOT IN"
條款忽略我下面的查詢中的所有無效的電話號碼,但它仍然拋出我01722. 00000
「無效號碼」。01722. 00000 - <code>"invalid number"</code>錯誤 - 在SQL更新
BEGIN
FOR X IN
(SELECT projecttype,pid,enddate FROM temp_project
)
LOOP
UPDATE temp_docmeta d
SET d.xprojecttype =X.projecttype
WHERE d.xproject_id =X.PID
AND X.projecttype IS NOT NULL
AND X.enddate > '10-MAR-14 00.00.00'
AND d.xproject_id NOT IN
(SELECT TO_NUMBER(xproject_id)
FROM temp_docmeta
WHERE REGEXP_LIKE(xproject_id, '[^0-9]+')
);
END LOOP;
END ;
但是,當我用delete語句刪除相同的一組記錄,然後運行上述更新命令,它工作正常。
DELETE
FROM temp_docmeta
WHERE xproject_id IN
(SELECT xproject_id
FROM temp_docmeta
WHERE REGEXP_LIKE(xproject_id, '[^0-9]+')
);
我不想從我temp_docmeta表中刪除上述記錄,但需要更新temp_docmeta
表中第一個查詢。我該怎麼做?
不,這是行不通的。 –
任何人都可以幫助解決這個問題嗎?或者你可以告訴我一個替代方法來更新我的表中的xprojecttype列。 P.S-當我用delete語句刪除同一組記錄,然後運行上述更新命令時,它工作正常。 –
@PulkitBhatia你嘗試了上面的答案嗎?它給出了任何錯誤?如果沒有錯誤,那是什麼不起作用? – Noel