1

全体として、テーブル型を引数として取る関数を呼び出す必要があります。電話する前にそれを埋める必要がありますが、そこに問題があります。

タイプは次のように定義されています。

create or replace TYPE MY_OBJ IS OBJECT(field1 NUMBER(10), field2 NUMBER(10), field3 VARCHAR2(2));
create or replace TYPE "MY_OBJ_ARRAY_TYPE" IS TABLE OF MY_OBJ;

私の手順は次のとおりです。

DECLARE
  -- ...
  v_temp_table MY_OBJ_ARRAY_TYPE;
  -- ...
BEGIN
  v_temp_table := MY_OBJ_ARRAY_TYPE();

  -- the following is incorrect
  SELECT field1, field2, field3
    BULK COLLECT INTO v_temp_table
    FROM table1;

  -- ... call the function here with v_temp_table as parameter
END;

SELECT INTO アプローチ:

SELECT INTO TABLE(v_temp_table) (field1, field2, field3)
    VALUES (f1, f2, f3)
    FROM table1;

正しい構文がどうあるべきかわかりませんv_temp_table。テーブルとして認識されていません。

4

1 に答える 1