728x90
반응형
728x170
■ DML 명령문에서 RETURNING 키워드를 사용하는 방법을 보여준다.
▶ 예제 코드 (SQL)
-- 직원 테이블을 생성한다.
CREATE TABLE EMP
(
EMPNO NUMBER(4, 0)
,ENAME VARCHAR2(10)
,SAL NUMBER(7, 2)
,CONSTRAINT PK_EMP PRIMARY KEY (EMPNO)
);
-- 직원 테이블에 데이터를 추가한다.
INSERT INTO EMP VALUES(7369, 'SMITH' , 800);
INSERT INTO EMP VALUES(7499, 'ALLEN' , 1600);
INSERT INTO EMP VALUES(7521, 'WARD' , 1250);
INSERT INTO EMP VALUES(7566, 'JONES' , 2975);
INSERT INTO EMP VALUES(7654, 'MARTIN', 1250);
INSERT INTO EMP VALUES(7698, 'BLAKE' , 2850);
INSERT INTO EMP VALUES(7782, 'CLARK' , 2450);
INSERT INTO EMP VALUES(7788, 'SCOTT' , 3000);
INSERT INTO EMP VALUES(7839, 'KING' , 5000);
INSERT INTO EMP VALUES(7844, 'TURNER', 1500);
INSERT INTO EMP VALUES(7876, 'ADAMS' , 1100);
INSERT INTO EMP VALUES(7900, 'JAMES' , 950 );
INSERT INTO EMP VALUES(7902, 'FORD' , 3000);
INSERT INTO EMP VALUES(7934, 'MILLER', 1300);
COMMIT;
DECLARE
V_ENAME EMP.ENAME%TYPE;
V_SAL EMP.SAL%TYPE;
BEGIN
FOR EMPLOYEE_RECORD IN (SELECT * FROM EMP)
LOOP
UPDATE EMP
SET SAL = SAL + 100
WHERE EMPNO = EMPLOYEE_RECORD.EMPNO
RETURNING ENAME, SAL INTO V_ENAME, V_SAL;
DBMS_OUTPUT.PUT_LINE(V_ENAME || ', ' || V_SAL);
END LOOP;
END;
728x90
반응형
그리드형(광고전용)
'Database > Oracle' 카테고리의 다른 글
[DATABASE/ORACLE] CONNECT 명령 : 계정 생성 확인하기 (0) | 2020.02.01 |
---|---|
[DATABASE/ORACLE] SELECT ~ BULK COLLECT INTO문 사용하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] 커서 속성 (0) | 2019.11.04 |
[DATABASE/ORACLE] FORALL ~ UPDATE ~ RETURNING ~ BULK COLLECT INTO문 사용하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] FORALL 명령 : 레코드 기반 데이터 추가하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] SQL%ROWCOUNT 암시적 커서 속성 사용하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] SQL%FOUND 암시적 커서 속성 사용하기 (0) | 2019.11.04 |
[DATABASE/ORACLE] DML문의 암시적 커서 속성 (0) | 2019.11.04 |
[DATABASE/ORACLE] INSERT INTO ~ SELECT ~ FROM 명령 : 데이터 추가하기 (0) | 2019.11.03 |
[DATABASE/ORACLE] 중첩 테이블 데이터 정렬해 출력하기 (0) | 2019.11.03 |
댓글을 달아 주세요