0

我正在编写一个程序,我必须使用“where field IN (SET)”条件进行更新。我正在尝试使用以下查询从表中检索此“SET”:

   SELECT WM_CONCAT(fieldX) FROM TableX WHERE .... ;

我想将此选择保存到一个变量中,并在“where field IN (SET)”条件之后使用它。就像是 :

   UPDATE TABLEY SET ... WHERE fieldX IN (Variable);

现在,当我尝试使用 where 条件(例如我想要更新的条件)进行选择时,我得到了这个错误:

  ORA-00932: inconsistent datatypes: expected - got CLOB
  00932. 00000 -  "inconsistent datatypes: expected %s got %s"

提前谢谢。

4

2 回答 2

1

尝试使用 xmltable,

UPDATE TABLEY y
SET ... 
WHERE y.fieldX IN(SELECT (COLUMN_VALUE).getNumberVal() 
                  FROM xmltable(Variable));
于 2013-08-21T10:45:36.283 回答
0

尝试

UPDATE TABLEY y
   SET ... 
 WHERE y.fieldX IN (
          SELECT x.fieldX FROM TableX x WHERE .... 
       )
     ;
于 2013-08-21T10:25:43.030 回答