【发布时间】:2018-07-31 11:41:56
【问题描述】:
以下代码因ORA-00927: missing equal sign 而失败:
if (countExceed > 0) then
quer :=
'Update UID_RM_HIERARCHY I
SET I.REVIEWER_UID IN
(
SELECT L.REVIEWER_UID
FROM UID_RM_HIERARCHY L
WHERE L.UNIQUE_ID in (' || p_ID_list || ')
)
WHERE I.REVIEWER_UID in('||p_ID_list||')
AND I.isdeleted=0';
EXECUTE IMMEDIATE quer;
我应该改变什么来解决它?
【问题讨论】:
-
存储过程中的plsql块
-
应该是
update x set y = z。你有IN应该是等号的地方。 -
我敢打赌,这会导致
TOO-MANY-ROWS,@William。并不是说您的建议是错误的,但我认为 OP 使用in试图避免它。查询使用承诺唯一性的L.UNIQUE_ID,但是 - 它与P_ID_LIST进行比较,这表明正好相反(除非列表包含单个ID,那么不应该有in,而是=)。这就是我恐惧的来源。 -
同意代码还有很多其他问题。我只是在评论错误消息。
-
请在您的问题中添加代码,而不是在 cmets 中。