Oracle 임시 테이블 생성

Oracle Imsi Teibeul Saengseong



전역 임시 테이블은 트랜잭션 또는 세션 기간에만 필요한 임시 데이터를 저장할 때 유용합니다. 일반 테이블과 달리 전역 임시 테이블은 세션 또는 트랜잭션이 종료되면 자동으로 삭제됩니다. 따라서 일반 테이블처럼 명시적으로 삭제할 필요가 없습니다. 그러나 전역 임시 테이블은 현재 세션에서만 볼 수 있으므로 다른 세션이나 사용자가 액세스할 수 없습니다.

Oracle에서 전역 임시 테이블은 'create global temporary table' 문을 사용하여 생성된 특별한 유형의 테이블입니다. 이 문은 일반 '테이블 생성' 문과 유사하지만 테이블이 전역 임시 테이블임을 지정하기 위해 '전역 임시' 키워드를 포함합니다.







'CREATE GLOBAL TEMPORARY TABLE' 문의 구문은 다음과 같습니다.



글로벌 임시 테이블 생성 table_name (
column1 데이터 유형 [NULL | NULL이 아님],
column2 데이터 유형 [NULL | NULL이 아님],
...
) [커밋 중 {삭제 | 보존} 행];

이 구문에서 table_name은 만들려는 전역 임시 테이블의 이름입니다. column1, column2 등은 테이블에 있는 열의 이름과 데이터 유형입니다.



ON COMMIT 절은 현재 트랜잭션이 커밋될 때 테이블의 행을 삭제할지 보존할지 여부를 지정합니다. 데이터베이스 엔진은 ON COMMIT 절이 정의되지 않은 경우 ON COMMIT DELETE ROWS 옵션을 사용합니다.





언급한 바와 같이 임시 테이블의 데이터는 비공개라는 점에 유의하십시오. 즉, 테이블을 생성한 세션 이외의 다른 세션에서는 테이블에 액세스할 수 없습니다.

전역 임시 테이블 생성 예제

Oracle 데이터베이스에서 create temporary table 문을 사용하는 몇 가지 실용적인 예를 살펴보겠습니다.



아래 표시된 예제 쿼리를 고려하십시오.

글로벌 임시 테이블 작성 temp_sales(
product_id NUMBER(10) NOT NULL,
sale_date 날짜가 NULL이 아님,
판매_금액 NUMBER(10,2) NOT NULL
) 커밋 삭제 행에서;

위의 예에서는 ON COMMIT DELETE ROWS 옵션을 사용하여 임시 테이블을 생성합니다.

그런 다음 일부 샘플 데이터를 다음과 같이 삽입할 수 있습니다.

TEMP_SALES에 삽입(product_id, sale_date, sale_amount) VALUES(1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES(product_id, sale_date, sale_amount) VALUES(2, DATE '2022-10-02', 500);
TEMP_SALES에 삽입(product_id, sale_date, sale_amount) VALUES(3, DATE '2022-10-03', 130);

그런 다음 다음과 같이 트랜잭션을 커밋할 수 있습니다.

저지르다;

커밋 후 데이터베이스 엔진은 커밋 절에 지정된 대로 임시 테이블의 모든 데이터를 자릅니다.

예 2

다음 예에서는 커밋 시 행을 보존하는 테이블을 만드는 방법을 보여줍니다.

글로벌 임시 테이블 작성 temp_sales(
product_id NUMBER(10) NOT NULL,
sale_date 날짜가 NULL이 아님,
판매_금액 NUMBER(10,2) NOT NULL
) ON 커밋 보존 행 ;

그런 다음 다음과 같이 샘플 행을 추가하고 커밋할 수 있습니다.

TEMP_SALES에 삽입(product_id, sale_date, sale_amount) VALUES(1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES(product_id, sale_date, sale_amount) VALUES(2, DATE '2022-10-02', 500);
TEMP_SALES에 삽입(product_id, sale_date, sale_amount) VALUES(3, DATE '2022-10-03', 130);

저지르다;

이 경우 아래의 select 문과 같이 커밋 작업 후에 데이터를 보존해야 합니다.

TEMP_SALES에서 * 선택;

산출:

결론

'임시 테이블 생성' 명령문은 Oracle에서 임시 테이블을 생성하기 위한 강력한 도구입니다. 임시 테이블은 트랜잭션이나 세션에만 필요한 임시 데이터를 저장하는 데 유용합니다. '임시 테이블 만들기' 문을 사용하면 임시 테이블의 구조와 열을 정의하고 트랜잭션이 커밋될 때 행을 처리하는 방법을 지정할 수 있습니다. 결과적으로 임시 테이블을 사용하면 쿼리 및 애플리케이션의 성능과 효율성을 개선하고 데이터베이스에 필요한 영구 저장 공간의 양을 줄일 수 있습니다.