将选择存储到变量中以供将来在过程中使用

时间:2013-08-21 10:23:09

标签: sql oracle

我编写一个程序,我必须使用“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"
提前谢谢。

2 个答案:

答案 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 .... 
       )
     ;