[오라클 PL/SQL] 오라클 임시 테이블 – 세션 GTT란?
- Database(데이터베이스)/Oracle
- 2019. 12. 10. 01:00
안녕하세요.
오늘은 오라클 임시 테이블 두 번째 시간으로 써, 세션 GTT(Global Temporary Table)에 대해서 알아 보려고 합니다.
앞에서 배웠던 트랜잭션 GTT와는 달리 세션 GTT는 세션 내에서 유지되는 임시 테이블입니다.
그럼 세션 GTT 구문을 먼저 살펴 보도록 하겠습니다.
세션 GTT 구문
CREATE GLOBAL TEMPORARY TABLE 테이블명 (
컬럼1 데이터타입,
…
…
)
ON COMMIT PRESERVE ROWS;
세션 GTT 구문은 위와 같습니다.
위의 마지막에 있는 “ON COMMIT PRESERVE ROWS”는 COMMIT을 실행한 후에도 데이터(로우)를 보존하라는 뜻이며 같은 세션 내에 있는 한 데이터가 유지됩니다.
그럼 실제로 세션 내에 데이터가 유지되는지 세션 GTT 테이블을 직접 만들어서 확인해 보도록 하겠습니다.
세션 GTT 테이블 생성
1 2 3 4 5 6 7 |
CREATE GLOBAL TEMPORARY TABLE stu_sess_gtt ( name varchar2(50), age number, grade number ) ON COMMIT PRESERVE ROWS; |
세션 GTT 테이블 사용
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 31 32 |
DECLARE vn_cnt1 number := 0; vn_cnt2 number := 0;
BEGIN --데이터 넣기 INSERT INTO stu_sess_gtt(name, age, grade) VALUES ('범범조조', 27, 1);
INSERT INTO stu_sess_gtt(name, age, grade) VALUES ('안정환', 22, 2);
INSERT INTO stu_sess_gtt(name, age, grade) VALUES ('류현진', 26, 4);
--COMMIT 전 데이터 개수 확인 SELECT COUNT(*) INTO vn_cnt1 FROM stu_sess_gtt;
COMMIT;
--COMMIT 후 데이터 개수 확인 SELECT COUNT(*) INTO vn_cnt2 FROM stu_sess_gtt;
--데이터 출력 DBMS_OUTPUT.PUT_LINE('COMMIT 전 개수 : ' || vn_cnt1); DBMS_OUTPUT.PUT_LINE('COMMIT 후 개수 : ' || vn_cnt2);
END; |
실행 결과
위와 같이 COMMIT 전과 후의 데이터 개수가 일치하는 것을 확인하실 수 있습니다.
감사합니다.^^
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 SQL] 오라클 UNION, UNION ALL,Order By 하는 방법 (0) | 2019.12.22 |
---|---|
[오라클 에러] 오라클 ORA-01722 : Invalid Number 에러 해결 방법 (0) | 2019.12.11 |
[오라클 PL/SQL] 오라클 임시 테이블 – 트랜잭션 GTT란? (0) | 2019.12.09 |
[오라클 SQL] 오라클 UNPIVOT 이용하여 컬럼을 로우로 전환(변환)하기 (0) | 2019.12.07 |
[오라클 SQL] 오라클 PIVOT 절을 이용하여 로우를 컬럼으로 전환(변환)하기 (0) | 2019.12.06 |
이 글을 공유하기