1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
/* PACKAGE SPEC */
CREATE OR REPLACE PACKAGE APPS.KBMIN_TEST IS
--Return Row type
TYPE menu_rec_kbmin IS RECORD
(
test1 VARCHAR2(100),
test2 NUMBER
);
--Return 하게될 Row type Array
TYPE menu_rec_set_kbmin IS TABLE OF menu_rec_kbmin;
FUNCTION getTable RETURN menu_rec_set_kbmin PIPELINED;
END KBMIN_TEST; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
/* PACKAGE BODY */
CREATE OR REPLACE PACKAGE BODY APPS.KBMIN_TEST IS
FUNCTION getTable
RETURN menu_rec_set_kbmin PIPELINED
IS
v_menu menu_rec_kbmin;
BEGIN
FOR func_cur IN (SELECT 'a' AS test1, 1 AS test2 FROM dual
UNION ALL
SELECT 'b' AS test1, 2 AS test2 FROM dual)
LOOP
v_menu.test1 := func_cur.test1;
v_menu.test2 := func_cur.test2;
PIPE ROW (v_menu);
END LOOP;
END getTable;
END KBMIN_TEST; |
위의 첫번째 소스는 package의 spec이고 두번째 소스는 body입니다.
1 |
SELECT * FROM TABLE(kbmin_test.getTable()); |
function을 호출해서 table을 보려면 위와같이 콜해주면 됩니다. pipelined를 이용해서 table형태 반환하는 function을 만드려고 검색하는데 보기 쉬운 예제가 잘 없길래 적당히 만들어 봤어요.
결과 화면입니다.
'공대 (Logical Life) > 프로그래밍' 카테고리의 다른 글
Oracle(오라클) BI 컬럼명 변경시 유의해야 할 버그 (0) | 2013.05.02 |
---|---|
oracle sql partition by 사용 예문 (0) | 2012.11.14 |
oracle sql문에서 주석 다는 습관 (0) | 2012.11.08 |
java에서 String 변수를 equals 함수로 비교할 때, NullPointerException 방지 (0) | 2012.06.20 |
제11회 2011 한국 자바 개발자 컨퍼런스 (0) | 2011.06.17 |