您错误地声明了您的记录类型(我假设您的列flh_id_messaggio
并且flh_integrazione_id
它们本身不是嵌套表)。
如果您正在创建一个关联数组来保存选定的值,则每个字段本身不必是一个集合(并且您在 select 语句之后有一个额外的逗号c.flh_integrazione_id
):
(我假设你flvo_id
是 a VARCHAR2
,因为你试图将它声明为 a VARCHAR2_TABLE
,如果它是 aNUMBER
然后在你的记录声明中声明它)。
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,只需声明您的 decald 记录类型的记录并选择该记录(不要忘记在您的代码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;