1

我已经生成了一个包含所有主键的关联数组(aArray)列表。

我可以知道如何使用它来更新这些主键吗?

例子:

Update animal an set status='dead' where an.pk in (aArray)

我可以知道除了以下方法之外还有其他方法:

1)循环数组并单独更新每条记录?(性能)

2)循环数组并绘制元素字符串。(23123,3123,3123,3123,123)

???

4

1 回答 1

1

如果您可以将数组作为模式级别的类型,那么您可以尝试以下操作:

create or replace type ANIMAL_ARRAY as TABLE OF NUMBER;
/

DECLARE
  aArray ANIMAL_ARRAY := new ANIMAL_ARRAY(1,2,3);
BEGIN
  Update animal an set status='dead' 
   where an.pk in (select column_value from table(aArray));
END;

如果数组是模式级别的类型,那么您可以使用table关键字将其称为常规表。

于 2012-10-30T09:16:29.653 回答