반응형
----------------------------------------------------------------------
( DBEAVER 기준) 간단한 호출 방법
-아웃파라메터를 ?로 해서 실행하면 된다.
CALL 프로시저명('in파라메터',' in파라메터', ?, ?);
위에 구문을 실행하면 아웃파라메터 내용이 Result 창에 찍힌다.
프로시저에서 찍은 로그들은 ctrl + shift + o 를 하면 로그들을 확인할수 있는
Output 창이 보인다.
(주의 : 실행시 구문 상단에 주석이 있으면 오류가 발생한다. 블럭잡고 실행하거나
상단에 주석을 제거해야한다.)
----------------------------------------------------------------------
#파라미터를 사용하지 않는 프로시저
CREATE OR REPLACE PROCEDURE 프로시저명
IS
-- 선언부
BEGIN
-- 실행부
EXCEPTION
-- 예외 처리부
END;
-PROC라는 이름의 프로시저 생성 후 출력 결과 테스트
-디비버툴에서는 프로시저 지원안해주는지 SQL*PLUS에서 실행 : EXCUTE 프로시저명;
CREATE OR REPLACE PROCEDURE PROC
IS
V_EMPNO NUMBER(4) := 1234;
BEGIN
DBMS_OUTPUT.PUT_LINE('V_EMPNO : ' || V_EMPNO);
END;
/
-결과
-익명 블록에서 프로시저 실행
BEGIN
프로시저명;
END;
/
-결과
V_EMPNO : 1234
#파라미터를 사용하는 프로시저(IN 모드 파라미터)
-프로시저 실행에 필요한 값을 직접 입력받는 형식의 파라미터 지정 방식입니다.
(IN은 default 값)
CREATE OR REPLACE PROCEDURE PROC_PARAMS
(
param1 IN NUMBER,
param2 NUMBER
)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('param1: ' || param1);
DBMS_OUTPUT.PUT_LINE('param2: ' || param2);
END;
-파라미터 넣어서 프로시저 실행
BEGIN
PROC_PARAMS(1,2);
END;
-결과
param1: 1
param2: 2
#파라미터를 사용하는 프로시저(OUT 모드 파라미터)
-프로시저 실행 후 호출한 프로그램으로 값을 반환 받을수 있는 방식입니다.
CREATE OR REPLACE PROCEDURE PROC_OUT
(
param1 OUT NUMBER
)
IS
BEGIN
SELECT DEPTNO INTO param1
FROM DEPT
WHERE DEPTNO = 10;
END PROC_OUT;
-PORC_OUT 프로시저 호출
DECLARE
param1 NUMBER;
BEGIN
PROC_OUT(param1);
DBMS_OUTPUT.PUT_LINE('param1: ' || param1);
END;
-결과
param1: 10
#SQL*PLUS에서 SHOW ERRORS;로 프로시저 오류를 확인할 수 있다.
#USER_SOURCE 테이블을 조회하면 생성된 프로시저를 확인할 수 있습니다.
SELECT * FROM USER_SOURCE;
-결과
#프로시저 삭제하는 방법
DROP PROCEDURE PROC;
참고사이트
반응형
'IT > Oracle' 카테고리의 다른 글
오라클 인덱스가 타지 않는 경우 (1) | 2023.09.08 |
---|---|
오라클 프로시저 컴파일 오류 확인하는 법 (0) | 2023.07.26 |
오라클 PL/SQL 기본 구문, 프로시저 디버깅 (0) | 2023.07.26 |
꼭알아야할 오라클 힌트절 7가지 (0) | 2022.07.22 |
DB 플랜 보는방법 및 기본적인 튜닝 방법 (0) | 2022.07.22 |
댓글