我编写一个程序,我必须使用“where field IN(SET)”条件进行更新。我试图从表中检索这个“SET”,并带有以下查询:
SELECT WM_CONCAT(fieldX) FROM TableX WHERE .... ;
我想将此select保存到变量中,然后在“where field IN(SET)”条件下使用它。类似的东西:
UPDATE TABLEY SET ... WHERE fieldX IN (Variable);
现在我得到这个错误,当我尝试选择一个像我想要更新的那样的条件:
ORA-00932: inconsistent datatypes: expected - got CLOB
00932. 00000 - "inconsistent datatypes: expected %s got %s"
提前谢谢。
答案 0 :(得分:1)
尝试使用xmltable,
UPDATE TABLEY y
SET ...
WHERE y.fieldX IN(SELECT (COLUMN_VALUE).getNumberVal()
FROM xmltable(Variable));
答案 1 :(得分:0)
试
UPDATE TABLEY y
SET ...
WHERE y.fieldX IN (
SELECT x.fieldX FROM TableX x WHERE ....
)
;