반응형
* 안 쓰고 싶은데 특정 도메인에선 프로시저로 범벅이다.
* 혹시 모르니 적어두자.
1. 프로시저 생성문
-- 생성문 시작
CREATE OR REPLACE PROCEDURE TEST_PROC
(
-- 프로시저 실행 시 받을 매개변수는 CREATE 안에 작성
param1 IN NUMBER
, param2 IN VARCHAR2
)
-- 프로시저에서 선언할 변수는 IS 뒤에 작성
IS
param3 IN VARCHAR2(20) := "StudyingAzae";
-- 실행 내용은 BEGIN 뒤에 작성
BEGIN
-- 단순 INSERT 문
INSERT INTO TEST_TABLE
(NO, NAME, SITE)
VALUE
(param1, param2, param3)
;
END TEST_PROC;
2. 실행
1) IN 변수만 있는 프로시져
EXEC TEST_PROC();
EXEC TEST_PROC(213, 'DDOL');
2) OUT 변수 있는 프로시져
DECLARE
param1 varchar2(200);
param2 varchar2(200);
BEGIN
TEST_PROC('123', param1, param2);
END;
3. 프로시저 문법 종류
1) SELECT 후 EXCEPTION
SELECT * FROM TB ;
EXCEPTION
WHEN NO_DATA_FOUND THEN 처리1 RETURN;
WHEN OTHERS THEN 처리2 RETURN;
2) IF THEN
IF 조건1 THEN 처리
IF 조건2 THEN 처리
ELSE
END IF;
3) CURSOR
-- COUSOR 선언
CURSOR 커서명
IS SELECT SQL
;
-- 사용
OPEN 커서명;
LOOP
FETCH 커서명 INTO 변수명;
EXIT WHEN 커서명 %NOTFOUND;
END LOOP;
CLOSE 커서명;
4) 로그(LOG) 찍는 법
DBMS_OUTPUT.PUT_LINE('내용');
그리드형
'IT > DB' 카테고리의 다른 글
[ORACLE] 알아두면 유용한 오라클 딕셔너리 (Oracle Dictionary) (0) | 2021.09.30 |
---|---|
[ORACLE] MERGE문 사용법 (0) | 2021.09.28 |
[ORACLE] 오라클 ROUND, TRUNC (소수점 반올림, 버림) (0) | 2021.09.10 |
[ORACLE] 오라클 ORA-01489 에러 LISTAGG 길이 초과 시 해결 방법 (0) | 2021.08.20 |
[ORACLE] 오라클 문자열 붙이기 / WM_CONCAT / LISTAGG (0) | 2021.08.20 |
댓글