반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Android
- pydantic
- xcode
- 리눅스
- 맥
- 개발
- androidstudio
- IOS
- webpack
- linux
- localserver
- PYTHON
- 센토스
- vsCode
- node
- 오블완
- TensorFlow
- build
- 티스토리챌린지
- 네트워크
- unittest
- VirtualBox
- centos
- ReactNative
- MAC
- MachineLearning
- react
- fastapi
- Chrome
Archives
- Today
- Total
로메오의 블로그
[PL/SQL] FOR LOOP 구현하기 본문
반응형
CREATE OR REPLACE PROCEDURE SP_WORK (
IN_OPERATION IN VARCHAR2
, IN_USER_JOB IN VARCHAR2
, RETURN_CODE IN OUT VARCHAR2
, ERROR_MESSAGE IN OUT VARCHAR2
) IS
BEGIN
RETURN_CODE := 0;
ERROR_MESSAGE := '';
IF IN_OPERATION = 'CREATE' THEN
FOR USERS IN (
SELECT
USER_ID
, USER_NAME
, USER_GENDER
, USER_JOB
FROM USER_TABLE
WHERE USER_JOB = IN_USER_JOB
) LOOP
DBMS_OUTPUT.PUT_LINE(USERS.USER_NAME);
MERGE INTO USER_TABLE U
USING DUAL
ON (U.USER_NAME = USERS.NAME AND U.USER_GENDER = USERS.GENDER)
WHEN MATCHED THEN
-- 중복데이터 처리
UPDATE SET
U.USER_JOB = IN_USER_JOB
WHEN NOT MATCHED THEN
-- 신규데이터 처리
INSERT (
U.USER_NAME
,U.USER_JOB
,U.USER_GENDER
) VALUES (
USERS.USER_NAME
,USERS.USER_JOB
,USERS.USER_GENDER
);
END LOOP;
END IF;
EXCEPTION WHEN OTHERS THEN
RETURN_CODE := -1;
ERROR_MESSAGE := 'SOME ERROR';
END;
DBMS_OUT 출력을 위해서는
SET SERVEROUTPUT ON;
명령을 입력하고
SQL DEVELOPER 기준 보기 > DBMS 출력에서 확인할 수 있습니다.
반응형
'Backend > Oracle & SQL' 카테고리의 다른 글
| [Oracle] Squence 생성, 수정, 조회, 삭제 - 시퀀스 사용 (0) | 2020.01.30 |
|---|---|
| [ORACLE] ORACLE 날짜 연산 / 날짜 포맷 (0) | 2020.01.09 |
| [Oracle] Table의 column 정보 가져오는 query (0) | 2019.11.15 |
| [Oracle] LIKE IN 조건문 사용하기 - REGEXP 정규식 사용하기 (0) | 2019.11.07 |
| [Docker] Jenkins 설치 (0) | 2019.09.22 |
Comments