이것은 DB2 테이블 함수와 유사하지만 컬럼 목록을 지정하지 않습니다.
예. 이런 식으로 :
create function do_some_stuff() returns table(<column_list>)
language sql
begin atomic
return
select t.* from some_table t;
[email protected]
<column_list>
사양이 없습니다. 이러한 함수는 전달 된 매개 변수와 내부 논리에 따라 다른 필드 집합을 사용하여 테이블을 반환 할 수 있습니다. 대부분의 경우이 유형의 함수 결과가 클라이언트 측에 결과를 반환하는 데 사용됩니다.
REF_CURSOR 기반의 선언 유형은 Oracle 8에서 이러한 작업을 수행하는 유일한 방법이지만 Oracle 9i에는 내장 유형 sys_refcursor가 있습니다 (예 : here 참조).
선언이 약한 유형이고 DB2가 sys_refcursor에 대한 아날로그를 가지고 있지 않기 때문에 자동 변환은 이러한 선언을 변환하는 방법을 결정할 수 없습니다.
변환하는 유일한 방법은 저장 프로 시저를 조사하고 커서에서 반환 된 필드 집합을 수동으로 재구성하는 것입니다. 그런 다음 강력한 선언 형 커서로 Oracle 선언을 다시 작성하고이를 MTK로 처리 할 수 있습니다.
- DB2가 지원하는 약한 유형 커서 : 또는 수동으로 ... DB2 측에서
업데이트 논리를 다시 작성합니다.
- IBM 책에 설명 된 이주 호환성 문제에 대한 솔루션은 here (경고 : .pdf 파일 약 3.18MB)을 참조하십시오. 여기서 "ref_cursor"문자열을 검색하십시오.
감사합니다. MTK가 강력한 형식의 커서를 처리 할 수 있다는 것을 암시하는 것처럼 보입니다. 그 맞습니까? –
미안하지만 충분한 DB2 경험이 없지만 MTK 기능에 대한 질문에 대한 답변이 있습니다 - 답변 업데이트를보십시오. – ThinkJet