본문 바로가기

Oracle

[ 추가기능 ] Function

 

 

 

 

 

 

 

 

 

행 TYPE(타입)을 등록한다.

CREATE OR REPLACE TYPE  TYPE_NAME  AS  OBJECT(
    COL1 NUMBER(22),
    COL2 NUMBER(4),
    COL3 NUMBER(22),
    COL4 NUMBER(22)
)

 

 

 

 

 

 

TABLE(테이블)을 생성한다.

CREATE OR REPLACE TYPE  TABLE_NAME  AS  TABLE  OF  TYPE_NAME ;

 

 

 

 

 

 

FUNCTION(함수)을 생선한다.

create or replace 
FUNCTION FUNCTION_NAME(
    // 인자 값. 
    PARAM1 IN VARCHAR, 
    PARAM2 IN NUMBER, 
    PARAM3 IN NUMBER 
)
RETURN TABLE_NAME


IS 
    // 반환할 변수를 생성하고 반환할 테이블을 지정. 
    RESULT_NAME  TABLE_NAME;  


BEGIN
    // TYPE과 SELECT항목.
    SELECT TYPE_NAME ( COL1 , COL2 , COL3 , COL4 ) 
    // 반환 할 변수에 담기. 
      BULK COLLECT INTO RESULT_NAME
    // 데이터 가져오는 테이블 , 실질적인 동작쿼리 
      FROM SOME_TABLE ; 

    // 반환할 데이터 설정. 
    RETURN RESULT_NAME;


END FUNCTION_NAME;

 

 

 

 

 

 

TYPE , TABLE , FUNCTION이 생성된 것을 확인할 수 있다.

 

 

 

 

 

 

 

함수 사용하기.

SELECT COL1 , COL2 , COL3 
  FROM TABLE( FUNCTION_NAME( PARAM1 , PARAM2 , PARAM3 ) )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'Oracle' 카테고리의 다른 글

[ Oracle ]  (0) 2021.11.16