당신은 (flh_id_messaggio
및 flh_integrazione_id
자체가 중첩 된 테이블이 아닌 내가 당신의 열을 가정하고) 귀하의 기록 형식이 잘못 선언했다. 당신이 값이 선택된 개최 연관 배열을 만드는 경우
, 각 필드는 그 자체로 수집 할 필요가 없습니다 (당신은 c.flh_integrazione_id
후 select 문에서 여분의 쉼표를했다) :
(I를 귀하의 flvo_id
이 으로 선언하려고 시도했을 때 VARCHAR2
이라고 가정하고, 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;
... Here
이 도움이 되었으면 좋겠 참조
편집 : 귀하의 코멘트에서
, 당신이 컬렉션의 기록 (보다는 콜렉션으로 선택해야하는 경우) 당신은 테이블 TYPE을 선언 할 필요가 없습니다. 당신의 decalred 레코드 타입의 레코드만을 선택하십시오. (당신의 코드에서 여러분은 여전히 이후에 여분의 쉼표를 가졌음을 잊지 마십시오. 당신의 선택 문에) :
이 시도 :
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;
오류 메시지가 무엇을 할 필요가 없습니다? – beny23
전체 코드 예제입니까? 나는 BEGIN 키워드와 같은 몇 가지 요소가 누락 된 것처럼 생각하지 않습니다. 구문 오류를 발견하기를 원하면 이해하지 못하는 오류를 나타내는 일관된 코드 샘플을 게시해야합니다. 그리고 컴파일 오류 스택도 게시하십시오! – APC
실행중인 Oracle 버전은 무엇입니까? – Ollie