#4. PLSQL 프로시저(Procedure)
프러시저(Procedure)
자신을 호출한 곳으로 리턴 해주는 값은 없고 호출되어 실행만 된다.
실행환경과 Stored Program 사이에 값을 전달하기 위해 파라미터를 사용한다.
파라미터 종류
IN : 호출하는 곳에서 함수 or 프로시저로 값을 전달
OUT : 함수 or 프로시저에서 호출한 곳으로 값을 전달
IN OUT : 호출하는 곳에서 함수 or 프로시저로 값을 전달하고 동시에 함수 or 프로시저에서 호출한 곳으로 값을 전달하는 변수.
프러시저 Header의 끝에는 IS[AS]가 와야하고 Is와 Begin사이에 Begin ~ End에서 사용할 변수를 선언한다.
[형식]
CREATE [OR REPLACE] PROCEDURE procedure_name [parameters]
IS[/AS]
Declaration_section
BEGIN
Execution_section
EXCEPTION
exception section
END;
/
SQL> edit ojc3
CREATE OR REPLACE PROCEDURE ojc3
(p_empno IN NUMBER, p_new_sal IN NUMBER)
IS
BEGIN
UPDATE emp
SET sal = p_new_sal
WHERE empno = p_empno;
COMMIT;
END ojc3 ;
/
SQL> @ojc3
프로시저가 생성되었습니다.
SQL> select empno, ename, sal from emp where empno = 7369;
EMPNO ENAME SAL
---------- ---------- ----------
7369 SMITH 800
SQL> exec ojc3(7369, 4500)
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> select empno, ename, sal from emp where empno = 7369;
EMPNO ENAME SAL
---------- ---------- ----------
7369 SMITH 4500
[Procedure에서 OUT 변수 사용 예제]
SQL> edit ojc4
CREATE OR REPLACE PROCEDURE ojc4(p_empno IN NUMBER, p_sal OUT NUMBER)
IS
BEGIN
SELECT sal INTO p_sal FROM emp
WHERE empno = p_empno;
END ojc4;
/
SQL> @ojc4
프로시저가 생성되었습니다.
SQL> variable sal number
SQL> exec ojc4(7369, :sal)
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> print sal
SAL
----------
4500
댓글 없음:
댓글 쓰기