방금 오라클의 ANYDATA
과 ANYTYPE
을 발견했으며 매우 반복적 인 코드가 있으면 일반적으로 유용 할 것이라고 생각했습니다.행 유형을 기반으로하는 컬렉션이있는 ANYDATA
declare
--simple test query
cursor myCurs is
select sysdate from dual;
type t_arr is table of myCurs%rowtype;
v_arr t_arr;
v_anydata ANYDATA;
begin
open myCurs;
fetch myCurs bulk collect into v_arr;
close myCurs;
dbms_output.put_line(v_arr.count || ' records');
v_anydata := ANYDATA.convertCollection(v_arr);
dbms_output.put_line(anydata.gettypename(v_anydata));
end;
/
이 코드를 실행하면 나에게 오류를 제공합니다 "ORA-22370 : : 방법 ORA는-22370 방법 ConvertCollection의 잘못된 ussage이의 잘못된 사용"(예, 실제로 반복 I는 다음과 같습니다 매우 간단한 코드 샘플을 시도 ORA-22370
).
제 질문은 : 행 유형 모음에 ANYDATA를 사용할 수 있습니까? 컬렉션에 ANYDATA (지금까지)가 사용 된 모든 예제가 객체 유형을 사용하고 아무 것도 사용하지 않기 때문에이 질문을합니다. 그러나 행 유형을 사용할 수 없다는 것을 명시 적으로 알지 못했습니다.
필자의 목표는 같은 일을 반복하지만 다른 테이블에 대해 다른 커서를 사용하는 반복적 인 대량 수집/삽입 코드를 정리하는 것이 었습니다.
(오라클 10g)
이 예제에서 내가하려는 것은 단순히 불가능합니다. – FrustratedWithFormsDesigner
APC에게, 제발 Pl/SQL의 제네릭에 관한 제 새로운 질문을보기 위해 친절하게 여기에 부탁하는 것은 좋지 않습니다. http://stackoverflow.com/questions/13157392/dynamic-typing-or- generics-in-oracle-pl-sql. 당신의 대답에서이 질문에 당신은 매우 도움이 될 수 있다고 생각합니다. – bpgergo