我已经生成了一个包含所有主键的关联数组(aArray)列表。
我可以知道如何使用它来更新这些主键吗?
示例:
Update animal an set status='dead' where an.pk in (aArray)
我可以知道除了以下方法之外还有其他方法:
1)循环数组并单独更新每条记录?(性能)
2)循环数组并绘制元素字符串。 (23123,3123,3123,3123,123)
···
答案 0 :(得分: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
关键字将其称为常规表。