본문으로 바로가기

[Oracle] 프로시져 생성(간단설명)

category Database/Oracle 2019. 7. 9. 16:00

1. Creating a Package

INSERT, UPDATE, DELETE 의 경우는 프로시져 생성시 별다른 이슈가 발생하지 않는다..리턴값이 발생하지 않기 때문에..

하지만 SELECT의 경우 리턴값을 받아야 하기때문에 커서에 해당 ResultSet을 담아 리턴해주어야 한다.

먼저 패키지를 생성한다.

CREATE OR REPLACE PACKAGE TYPES AS --> 패키지명은 "TYPES" TYPE cursorType is REF CURSOR;    --> 패키지에 생성된 커서타입 REF CURSOR END TYPES;

 

 

2. Creating a Procedure

 

CREATE OR REPLACE PROCEDURE UP_GET_TABLES (     PSEARCH_FIELD IN VARCHAR2, --SEARCH FIELD     PLIST1 OUT TYPES.CURSORTYPE, --> 첫째 select값을 LIST1 커서에 담는다.     PLIST2 OUT TYPES.CURSORTYPE --> 두번째 select값을 LIST2 커서에 담는다. ) AS BEGIN --============================================================= --LIST1 OPEN PLIST1 FOR    --> 커서를 오픈하고 ";"까지의 select값을 담는다. SELECT ID, PW, NAME FROM JAVA_PROJECT.MEMBER; --============================================================= --LIST2 OPEN PLIST2 FOR    --> 커서를 오픈하고 ";"까지의 select값을 담는다.

SELECT TITLE, CONTENT, WRITER FROM JAVA_PROJECT.BOARD; --============================================================= END UP_GET_TABLES;

 

 

3. Call a Procedure

--> 변수선언

VAR List1 REFCURSOR VAR List2 REFCURSOR

--> 변수값(Varchar2 인자값, List1커서, List2커서)을 포함하여 해당 프로시져를 호출한다. EXEC UP_GET_TABLES('SEARCH_VALUE', :List1, :List2); 

 

--> OUT값 출력 PRINT List1; PRINT List2;



출처: https://javaengine.tistory.com/31?category=538550 [자바엔진]