Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- AJAX
- Docker
- maven
- Tomcat
- oracle
- myBatis
- MySQL
- JavaScript
- Exception
- JDBC
- Thymeleaf
- spring
- 설정
- Core Java
- STS
- error
- PostgreSQL
- Open Source
- SpringBoot
- ubuntu
- 오픈소스
- Python
- git
- jpa
- Spring Boot
- Eclipse
- MSSQL
- Source
- IntelliJ
- 문서
Archives
- Today
- Total
헤르메스 LIFE
[Oracle] Procedure 예제 본문
728x90
CREATE OR REPLACE PROCEDURE USER_PROC (
V_VALUE_1 IN VARCHAR2,
V_VALUE_2 IN VARCHAR2,
V_DEPTNO IN EMP.DEPTNO%TYPE ,
O_ERRORCODE OUT VARCHAR2,
O_ERRORMESG OUT VARCHAR2
)
IS
/*****************************************************************
Program Name : 프로시져명
Description : 설명
Author : 성명
History : 날짜
*****************************************************************/
V_ENAME VARCHAR2(8) := '';
V_USER_NAME VARCHAR2(20) := '';
V_USER_ID VARCHAR2(20) := '';
-- 커서선언
CURSOR CUR_EMP_LIST(P_USER_ID EMP.USER_ID%TYPE)
IS
SELECT *
FROM EMP
WHERE USER_ID = P_USER_ID
;
-- 커서 변수선언
V_EMP_LIST EMP%ROWTYPE;
BEGIN
DBMS_OUTPUT.ENABLE;
SELECT ENAME
INTO V_ENAME
FROM EMP
WHERE ENAME = '1234'
;
DBMS_OUTPUT.PUT_LINE ('사원명은'||V_ENAME||' 입니다') ;
FOR EMP_LIST IN (
SELECT *
FROM EMP -- 테이블
WHERE JOIN_DATE LIKE '202301%'
) LOOP
V_USER_NAME := EMP_LIST.USER_NAME;
V_USER_ID := EMP_LIST.USER_ID;
END LOOP;
-- 커서오픈
OPEN CUR_EMP_LIST('1234');
-- LOOP
LOOP
FETCH CUR_EMP_LIST INTO V_EMP_LIST;
EXIT WHEN CUR_EMP_LIST%NOTFOUND;
DBMS_OUTPUT.PUT_LINE ('사원명은'||V_EMP_LIST.USER_NAME || ' 입니다') ;
END LOOP;
-- 커서닫기
CLOSE CUR_EMP_LIST;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('해당 사원이 없습니다') ;
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('사원이 두 명 이상입니다') ;
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE(' 0 으로 나눌 수 없습니다.') ;
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE(' 동일한 데이터가 존재합니다.') ;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(' 기타오류') ;
END;
https://hermeslog.tistory.com/287
https://hermeslog.tistory.com/293
https://hermeslog.tistory.com/291
728x90
'Database' 카테고리의 다른 글
[Oracle] PL/SQL PREDEFINED EXCEPTION - 미리정의된 예약 (0) | 2015.09.30 |
---|---|
[Oracle] PL/SQL 예외처리 (0) | 2015.09.30 |
[Oracle] AUTHID DEFINER, AUTHID CURRENT_USER (0) | 2015.09.30 |
[Oracle] Function 예제 (0) | 2015.09.30 |
Oracle 11g Client 설치 - 필요 조건 검사 수행 실패 (0) | 2015.03.04 |