>  기사  >  데이터 베이스  >  Oracle을 사용하여 임시 테이블을 쿼리하는 방법 살펴보기

Oracle을 사용하여 임시 테이블을 쿼리하는 방법 살펴보기

PHPz
PHPz원래의
2023-04-18 09:07:361147검색

오라클 데이터베이스에서 임시 테이블은 임시 데이터를 저장하는 데 사용되는 임시 테이블입니다. 일반 테이블과 달리 세션 종료 후 자동으로 삭제됩니다. 임시 테이블은 일반 테이블과 마찬가지로 SELECT, INSERT, UPDATE, DELETE 및 기타 작업을 사용할 수 있지만 해당 데이터는 현재 세션에만 표시되며 다른 세션에서는 액세스할 수 없습니다. 이 기사에서는 Oracle을 사용하여 임시 테이블을 쿼리하는 방법을 살펴보겠습니다.

임시 테이블 생성

오라클 데이터베이스에서는 CREATE GLOBAL TEMPORARY TABLE 또는 CREATE TEMPORARY TABLE 문을 사용하여 임시 테이블을 생성할 수 있습니다. 두 명령문은 매우 유사하지만 주요 차이점은 CREATE GLOBAL TEMPORARY TABLE은 전역 임시 테이블을 생성하고 CREATE TEMPORARY TABLE은 세션 임시 테이블을 생성한다는 것입니다. 다음은 세션 임시 테이블을 생성하는 예입니다.

CREATE GLOBAL TEMPORARY TABLE temp_table (
  id NUMBER(10),
  name VARCHAR2(30)
) ON COMMIT PRESERVE ROWS;

이 명령문은 id와 name이라는 두 개의 열을 포함하는 temp_table이라는 임시 테이블을 생성하며, 세션이 끝나면 데이터가 삭제됩니다. ON COMMIT PRESERVE ROWS 옵션은 제출 후에도 데이터가 유지되도록 지정하므로 세션 중에 임시 테이블을 여러 번 사용할 수 있습니다.

임시 테이블 쿼리

임시 테이블 쿼리는 일반 테이블 쿼리와 매우 유사합니다. 다음은 임시 테이블을 쿼리하는 예입니다.

SELECT * FROM temp_table;

이렇게 하면 temp_table의 모든 행과 열이 반환됩니다.

여러 세션 간에 임시 데이터를 공유하려면 CREATE GLOBAL TEMPORARY TABLE 문을 사용하여 전역 임시 테이블을 생성할 수 있습니다. 다음은 전역 임시 테이블을 사용하는 예입니다.

CREATE GLOBAL TEMPORARY TABLE temp_table (
  id NUMBER(10),
  name VARCHAR2(30)
) ON COMMIT PRESERVE ROWS;

-- 在会话1中插入数据
INSERT INTO temp_table VALUES (1, 'Alice');
COMMIT;

-- 在会话2中查询数据
SELECT * FROM temp_table;

-- 在会话1中插入更多的数据
INSERT INTO temp_table VALUES (2, 'Bob');
COMMIT;

-- 再次在会话2中查询数据
SELECT * FROM temp_table;

이 예에서는 전역 임시 테이블 temp_table이 세션 1에서 생성된 후 일부 데이터가 세션 1에 삽입됩니다. 세션 2는 SELECT 문을 통해 temp_table의 모든 행과 열을 쿼리합니다. 이 쿼리 중에 세션 1은 계속해서 temp_table에 데이터를 삽입하고 제출 후 데이터를 유지합니다. 마지막으로 세션 2에서 temp_table을 다시 쿼리하면 이전에 삽입된 행만 표시되고 이후 행은 표시되지 않습니다.

오라클 데이터베이스에서 임시 테이블을 쿼리하는 구문은 일반 테이블을 쿼리하는 것과 동일합니다. 임시 테이블의 가장 큰 장점은 세션 종료 후 자동으로 삭제되므로 임시 데이터 작업 시 수동 정리 작업을 피할 수 있다는 것입니다.

위 내용은 Oracle을 사용하여 임시 테이블을 쿼리하는 방법 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.