단순히 지정한 ID에 대한 커서를 다시 가져 오려고합니다.IN 절에 Oracle 테이블 형식 사용 - 컴파일 오류가 발생했습니다.
CREATE OR REPLACE PACKAGE some_package AS TYPE t_cursor IS REF CURSOR; TYPE t_id_table IS TABLE OF NVARCHAR(38) INDEX BY PLS_INTEGER; PROCEDURE someentity_select( p_ids IN t_id_table, p_results OUT t_cursor); END; CREATE OR REPLACE PACKAGE BODY some_package AS PROCEDURE someentity_select( p_ids IN t_guid_table, p_results OUT t_cursor) IS BEGIN OPEN p_results FOR SELECT * FROM someschema.someentity WHERE id IN (SELECT column_value FROM TABLE(p_ids)); - fails here END; END;
참고 : someschema.someentity.id는 NVARCHAR2 (38)
입니다PL/SQL : ORA-00382 : ORA-22905 : 행에 액세스 할 수없는 표현은 잘못된 유형의
PL/SQL이다 중첩되지 않은 테이블 항목에서
어디로 잘못 가고 있습니까? 당신은 단지 CREATE TYPE 문을 통해 데이터베이스에 정의 된 콜렉션 유형을 선택할 수 있습니다
감사합니다.하지만 이제는 ORA-12714가 표시됩니다. 해당 행에 잘못된 국가 별 문자 집합이 지정되었습니다. 훨씬 더 가깝습니다. –
완전히 다른 문제이므로 국가 별 문자 집합 문제에 대한 단서가 없기 때문에 이에 대한 또 다른 질문을 게시하고 싶을 수 있습니다. –