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 に答える