2009-08-27 6 views
1

에서 내 타입이 나는 간단한 오라클 타입을 만들 때 결과를 표시하는 방법 : 다음테이블은 오라클

create or replace TYPE MY_TYPE AS OBJECT (ID NUMBER(30), NAME VARCHAR2(20)); 

을, 나는 두 번째 테이블 유형 생성 : 마지막으로

create or replace TYPE MY_TYPE_TABLE AS TABLE OF MY_TYPE; 

을, 나는 간단하게 만들어 기능 :

create or replace FUNCTION my_function(line_id IN NUMBER) RETURN MY_TYPE_TABLE 
AS 
    return_data MY_TYPE_TABLE := MY_TYPE_TABLE(); 
BEGIN 
    return_data.EXTEND; 
    return_data(return_data.count) := (MY_TYPE(10, 'BOB')) ; 
    return_data.EXTEND; 
    return_data(return_data.count) := (MY_TYPE(11, 'ALAN')) ; 
    RETURN return_data; 
END SETTLEMENT_NET_TRACKING; 

내 질문 :이 같은 결과이 기능을 실행하는 방법 :

10 BOB 
11 ALAN 

뜨거운 일?

답변

2

해당 메소드에 로그인하려는 경우 DBMS_OUTPUT을 사용하여 표준 출력에 로그하거나 UTL_FILE을 사용하여 파일에 로그 할 수 있습니다. 이전 질문에서 사소한 응용 프로그램보다 큰 것을 디자인하는 경우 사용자 지정 로깅 패키지를 만들고 싶다고 제안했습니다.

문제의 경우는 다음과 같이 보일 것입니다 :

dbms_output.enable; 
for i in return_data.first..return_data.last loop 
    dbms_output.put_line(return_data(i).id || ' ' || return_data(i).name); 
end loop; 

당신은 당신의 클라이언트 응용 프로그램에서 출력을 활성화해야합니다. SQLPlus의 경우 API를 호출하기 전에 SET SERVEROUT ON을 사용합니다.

1

또한

select * from table(my_function(30)) 
+0

+1 짧고 간단하게 할 수 있습니다 –