oracle - 缺少等号
问题描述
以下代码失败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;
我应该改变什么来解决它?
解决方案
要使您的代码运行,您可以这样做:
if (countExceed > 0) then
quer :=
'Update UID_RM_HIERARCHY I
SET I.REVIEWER_UID = -- place always a "=" and no "IN"
(
SELECT L.REVIEWER_UID
FROM UID_RM_HIERARCHY L
WHERE L.UNIQUE_ID in (' || p_ID_list || ')
AND ROWNUM = 1 -- This query has to give you a single value! Because of this we only select the first value (properbly wrong?!)
)
WHERE I.REVIEWER_UID in('||p_ID_list||')
AND I.isdeleted=0';
EXECUTE IMMEDIATE quer;
但我强烈建议阅读一些教程。或者清楚地解释你在做什么。我仍然不确定你在用这些做什么p_ID_list
或它包含什么。
如需进一步帮助,您应该告诉我们:
- 你的桌子是什么?
- 它们包含什么?
- p_ID_list 包含什么?
- 你打算一步一步地处理这个列表吗?
推荐阅读
- react-native - 如何使用 Expo.Facebook 注销
- cordova - (离子)使用 Cordova/Phonegap 在受密码保护的 NFC 标签上写字?
- linux - linux调度程序在多核平台上如何处理系统调用
- ubuntu - .rpm 甚至没有在 kubuntu 的终端中安装 jdk 包
- c - 如何使用 C .dll
- c++ - 为什么设置空间属性不起作用?
- xml - 不验证 XSD 中的某些元素?
- java - 如何从 JSP 文本框中检索数据并在同一页面的 JQuery 警报框中显示数据?
- sql-server - 在sql server中将三行合并为一行
- java - 如何在java中的charAt等字符串方法中使用long?