UPDATE 문의 RETURNING INTO 절 개선

2023. 4. 15.·Oracle/PLSQL

Oracle 23c부터 UPDATE 문의 RETURNING INTO 절에 OLD 키워드와 NEW 키워드를 사용하여 갱신 전후 값을 반환할 수 있습니다.

The RETURNING INTO clause for INSERT, UPDATE, and DELETE statements are enhanced to report old and new values affected by the respective statement. This allows developers to use the same logic for each of these DML types to obtain values pre- and post-statement execution. Old and new values are valid only for UPDATE statements. INSERT statements don't report old values and DELETE statements don't report new values. The ability to obtain old and new values affected by INSERT, UPDATE, and DELETE statements, as part of the SQL command’s execution, offers developers a uniform approach to reading these values and reduces the amount of work the database must perform.

 

테스트를 위해 아래와 같이 테이블을 생성하겠습니다.

-- 1
DROP TABLE t1 PURGE;
CREATE TABLE t1 (c1, c2) AS SELECT 1, 1 FROM DUAL;

 

아래 예제는 UPDATE 문의 RETURNING INTO 절에 OLD 키워드와 NEW 키워드를 사용합니다. 갱신 전후 값이 반환되는 것을 확인할 수 있습니다.

-- 2
SET SERVEROUT ON

DECLARE
    v_old t1%ROWTYPE;
    v_new t1%ROWTYPE;
BEGIN
    UPDATE t1
       SET c2 = 2
     WHERE c1 = 1
    RETURN OLD c1, OLD c2, NEW c1, NEW c2
      INTO v_old.c1, v_old.c2, v_new.c1, v_new.c2;

    DBMS_OUTPUT.PUT_LINE (v_old.c1 || ',' || v_old.c2 || ',' || v_new.c1 || ',' || v_new.c2);
END;
/

1,1,1,2
저작자표시 비영리 변경금지 (새창열림)
'Oracle/PLSQL' 카테고리의 다른 글
  • Qualified Expression 기능 개선
  • FOR LOOP 문 기능 개선
  • 단순 CASE 문 평가식 개선
  • PL/SQL 오브젝트 컴파일 시 ORA-29275 에러 발생
정희락
정희락
2007년부터 Oracle Database 성능 최적화에 주력해 왔으며, 현재 한국오라클 Engineered Systems Solution Engineering 팀에서 Solution Engineer로 근무하고 있습니다. 이 블로그는 개인적인 연구 목적으로 운영되며, Oracle 사의 공식 입장을 대변하지 않습니다.
  • 정희락
    TunA
    정희락
  • 전체
    오늘
    어제
    • 분류 전체보기 (199) N
      • Oracle (171) N
        • SQL (33) N
        • PLSQL (10)
        • Performance (74)
        • Administration (37) N
        • Installation (3)
        • Utilities (1)
        • JSON (8)
        • Vector (5) N
      • Exadata (15)
      • SQL*Plus (2)
      • Linux (5)
      • Resources (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 도서

    • 불친절한 SQL 프로그래밍
    • 불친절한 PL/SQL 프로그래밍
  • 링크

    • Connor McDonald
    • Frits Hoogland
    • Jonathan Lewis
    • Julian Dontcheff
    • Julian Dyke
    • Kun Sun
    • Maria Colgan
    • Martin Bach
    • Mike Dietrich
    • Tanel Poder
  • 공지사항

  • 인기 글

  • 태그

    12c
    19c
    21c
    23ai
    case study
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정희락
UPDATE 문의 RETURNING INTO 절 개선
상단으로

티스토리툴바