我更新在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