レコード型を正しく宣言していません (列flh_id_messaggio
を想定しておりflh_integrazione_id
、それ自体がネストされたテーブルではありません)。
選択した値を保持する連想配列を作成する場合、各フィールド自体がコレクションである必要はありません (select ステートメントの後に余分なカンマがありましたc.flh_integrazione_id
)。
(あなたがそれを として宣言しようとしたので、あなたflvo_id
が であると仮定しました。それが である場合は、レコード宣言でそのように宣言します)。VARCHAR2
VARCHAR2_TABLE
NUMBER
TYPE receniflussihub IS RECORD(
flvo_id VARCHAR2,
flh_id_messaggio eni_flussi_hub.flh_id_messaggio%TYPE,
flh_integrazione_id eni_flussi_hub.flh_integrazione_id%TYPE
);
TYPE taof_rowcureniflussihub IS TABLE OF receniflussihub;
cureniflussihub taof_rowcureniflussihub;
SELECT NULL flvo_id,
c.flh_id_messaggio,
c.flh_integrazione_id
BULK COLLECT INTO cureniflussihub
FROM eni_flussi_hub C
WHERE c.flh_fornitura = p_flh_fornitura;
ここを見る
それが役に立てば幸い...
編集:
あなたのコメントから、(レコードのコレクションではなく) コレクションのレコードを選択する必要がある場合は、テーブル TYPE を宣言する必要はありません。あなたのコードでc.flh_integrazione_id
は、selectステートメントの後にまだ余分なコンマがありました):
これを試して:
TYPE receniflussihub IS RECORD(
flvo_id dbms_sql.varchar2_table,
flh_id_messaggio dbms_sql.varchar2_table,
flh_integrazione_id dbms_sql.varchar2_table
);
receniflussihub_rec receniflussihub;
SELECT NULL flvo_id,
c.flh_id_messaggio,
c.flh_integrazione_id
BULK COLLECT INTO receniflussihub_rec.flvo_id,
receniflussihub_rec.flh_id_messaggio,
receniflussihub_rec.flh_integrazione_id
FROM eni_flussi_hub C
WHERE c.flh_fornitura = p_flh_fornitura;