방금 제목을 다시 읽었습니다. 실제로 프로 시저에서 선택할 수 있어야합니까?
그렇다면 파이프 라인 기능을 사용하여이를 수행 할 수 있습니다.
이에 대한 프로세스는 다음과 같습니다
- 당신이 필요로하는 기록 유형을 표시하는 개체 유형을 만듭니다.
- 개체의 중첩 테이블 형식을 만듭니다.
- 중첩 테이블을 반환하는 파이프 라인 함수를 만듭니다.
- 그런 다음이 기능에서 선택할 수 있습니다.
이 예는 당신의 방법에 당신을 얻을해야합니다
create or replace type to_test as object (
val1 varchar2(32),
val2 varchar2(32)
);
create or replace type tt_test as table of to_test;
create or replace function demo_pipe return tt_test pipelined
is
v_test to_test;
begin
for rec in (select * from user_tables) loop
v_test := to_test(rec.table_name, rec.tablespace_name);
pipe row (v_test);
end loop;
end;
/
select * from table(demo_pipe);
이 커서가 돌아갑니다 결과 집합의 구조를 알고 계십니까? 아니면 일반적인 약한 형식의 참조 커서 'OUT' 매개 변수를 처리하려고합니까 (결과의 구조가 변경 될 수 있음)? 임시 테이블을 이미 생성 했습니까? –
@JustinCave 예, 이미 임시 테이블을 만들었습니다. 그러나 일반 약형 커서도 처리 할 수 있는지 알려주십시오. 고맙습니다. – user1663715
강력하고 형식이 지정된 일반 참조 테이블의 데이터를 강력한 형식의 기존 임시 테이블에 저장하는 방법은 무엇입니까? 그것은 일반적으로 의미가 없기 때문에 접근 방식에 대해 열심히 제안 할 것을 제안합니다. 반환되는 커서의 구조를 알고 있고 작성한 임시 테이블의 구조와 일치하는 경우 구조적으로는 여전히 약간이지만 기술적으로는 대단히 어렵지 않습니다. –