如何在where子句中使用dbms_sql.varchr2_table类型的变量

时间:2011-10-13 09:34:14

标签: oracle plsql

我已将表中的行添加到dbms_sql.varchar2_table类型的变量中。

select id 
  bulk collect into collValyes 
  from tabl1;

collValyes是dbms_sql.varchar2_table类型的变量。 现在我必须在where子句中使用collValyes。喜欢

update Table2 
   set Status ='R' 
 where id in collValyes .

一个执行上面的查询,我正在

PLS-00382: expression is of wrong type

我在网上搜索了很多但没有找到解决方案。 请帮忙

1 个答案:

答案 0 :(得分:3)

您可以使用FORALL批量处理进行更新:

FORALL x IN INDICES OF collValyes
   UPDATE Table2
      SET status = 'R'
    WHERE id = collValyes(x);

您可以在此处找到有关Oracle FORALL的更多信息:

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/forall_statement.htm

希望它有所帮助...