Programing

Oracle 데이터베이스에서 임시 테이블을 어떻게 생성합니까?

crosscheck 2020. 9. 18. 07:36
반응형

Oracle 데이터베이스에서 임시 테이블을 어떻게 생성합니까?


Oracle 데이터베이스에 임시 테이블을 만들고 싶습니다.

같은 것

Declare table @table (int id)

SQL 서버에서

그런 다음 select 문으로 채 웁니다.

가능할까요?

감사


네, Oracle에는 임시 테이블이 있습니다. 여기에 그들을 설명 하는 AskTom 기사에 대한 링크가 있으며 여기 에 공식 오라클 CREATE TABLE 문서가 있습니다.

그러나 Oracle에서는 임시 테이블 데이터임시입니다. 테이블은 다른 세션에서 볼 수있는 일반 개체입니다. Oracle에서 임시 테이블을 자주 만들고 삭제하는 것은 나쁜 습관입니다.

CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)
ON COMMIT PRESERVE ROWS;

Oracle 18c는 단일 세션 인 메모리 개체 인 개인 임시 테이블을 추가했습니다. 자세한 내용 은 설명서 를 참조하십시오. 개인용 임시 테이블은 동적으로 작성 및 삭제할 수 있습니다.

CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales AS
SELECT * FROM orders WHERE order_date = SYSDATE;

임시 테이블은 유용 할 수 있지만 일반적으로 Oracle에서 남용됩니다. 인라인 뷰를 사용하여 여러 단계를 단일 SQL 문으로 결합하면 이러한 문제를 피할 수 있습니다.


팁 .. Oracle의 임시 테이블은 SQL Server와 다릅니다. 모든 세션이 아닌 한 번만 생성합니다. 여기에 삽입 한 행은 세션에서만 볼 수 있으며 세션 을 종료 할 때 (또는 사용하는 "ON COMMIT"절에 따라 트랜잭션이 종료 될 때) 자동으로 삭제됩니다 (예 : TRUNCATE아님 DROP).


CREATE GLOBAL TEMPORARY TABLE Table_name
    (startdate DATE,
     enddate DATE,
     class CHAR(20))
  ON COMMIT DELETE ROWS;

참고 URL : https://stackoverflow.com/questions/2671518/how-do-you-create-a-temporary-table-in-an-oracle-database

반응형