マージステートメントのソースとして配列を使用することは可能ですか?
たとえば、以下のマージ ステートメントがあり、コンパイルするとエラーが発生します。配列をソーステーブルとしてマージを使用するにはどうすればよいですか?
PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND
table of records
手続きコード
CREATE or REPLACE PROCEDURE my_proc (varray IN my_array)
AS
BEGIN
FORALL i IN varray.first..varray.last
MERGE INTO tab t
USING dual
ON ( t.proj_id = varray(i).proj_id)
WHEN MATCHED THEN
UPDATE set
proj_title = varray (i).proj_title
WHERE proj_id = varray (i).proj_id
WHEN NOT MATCHED THEN
insert (proj_id,proj_title)
values (varray (i).proj_id,varray (i).proj_title);
values (varray (i).proj_id,varray (i).proj_title);