ここで何が問題なのかわかりません。最終的にここで助けを求めることにしました。
これが私が呼び出す方法です:
DECLARE
RESSULT VARCHAR2(1000 CHAR);
V_TEST1 CARS_TABLE:=CARS_TABLE();
idx pls_integer :=0;
BEGIN
V_TEST1.EXTEND(2);
IDX := V_TEST1.COUNT; -- here there is NO problem
RESSULT:=MYFUNCTION(1, V_TEST1);
END;
これは私が呼び出しているものです..
CREATE OR REPLACE
FUNCTION MYFUNCTION(
CAR_ID IN INTEGER,
MYOUTTABLE OUT CARS_TABLE)
RETURN VARCHAR2
IS
RESSULT VARCHAR2(1000 CHAR);
idx pls_integer :=0;
BEGIN
IDX := MYOUTTABLE.COUNT; - HERE IS PROBLEM.. but why - I pass initialized collection
RETURN 'return param';
END MYFUNCTION;
CREATE OR REPLACE TYPE carElement
IS
OBJECT
(
kind VARCHAR2(60),
created DATE );
CREATE OR REPLACE TYPE CARS_TABLE
AS TABLE OF carElement;
- 00000 - 「初期化されていないコレクションへの参照」 *原因: コレクションが初期化されていない状態で、(初期化されたコレクションが必要な場合に)ネストした表またはVARRAYの要素またはメンバー関数が参照されました。*処置: 適切なコンストラクタまたはオブジェクト全体の割当てでコレクションを初期化してください。