it-swarm-ko.tech

Oracle의 이중 테이블은 무엇입니까?

나는 사람들이이 표를 언급하는 것을 들었고 그것이 무엇인지 확실하지 않았습니다.

216
Brian G

실제로 데이터에 관심이 없지만 select 문에서 일부 시스템 함수의 결과를 원할 때 선택하는 데 사용되는 단일 레코드가있는 일종의 더미 테이블입니다.

예 : select sysdate from dual;

http://www.adp-gmbh.ch/ora/misc/dual.html 참조

216
Sean McMains

요소가 하나 인 더미 테이블입니다. 오라클은 다음과 같은 문장을 허용하지 않기 때문에 유용합니다

 SELECT 3+4

다음과 같이 작성하여이 제한 사항을 해결할 수 있습니다.

 SELECT 3+4 FROM DUAL

대신에.

77
mfx

에서 Wikipedia

역사

DUAL 테이블은 Oracle Corporation의 Chuck Weiss가 내부보기에 참여하기위한 테이블을 제공하기 위해 작성되었습니다.

DUAL 테이블을 Oracle Data Dictionary의 기본 개체로 만들었습니다. 그 자체로 볼 수는 없었지만 쿼리가 예상되는 뷰 내부에서 사용되었습니다. 아이디어는 DUAL 테이블에 조인을 수행하고 결과를 테이블의 각 행마다 두 개의 행을 작성할 수 있다는 것입니다. 그런 다음 GROUP BY를 사용하여 결과 조인을 요약하여 DATA 익스텐트 및 INDEX 익스텐트의 스토리지 양을 표시 할 수 있습니다. DUAL이라는 이름은 단 하나의 행에서 한 쌍의 행을 작성하는 프로세스에 적합 해 보였습니다. 1

위에서 명확하지 않을 수도 있지만 원래 DUAL 테이블에는 두 개의 행이 있으므로 이름이 있습니다. 요즘에는 단 하나의 행만 있습니다.

최적화

DUAL은 원래 테이블이며 데이터베이스 엔진은 DUAL에서 선택할 때 테이블에서 디스크 IO를 수행합니다. 디스크 블록은 일반적으로 메모리에 이미 캐시되어 있으므로이 디스크 IO는 일반적으로 논리적 IO (실제 디스크 액세스를 포함하지 않음)였습니다. 이로 인해 DUAL 테이블에 대해 많은 논리 IO가 발생했습니다.

이후 버전의 Oracle 데이터베이스가 최적화되었으며 DUAL 테이블이 여전히 존재하더라도 데이터베이스는 더 이상 DUAL 테이블에서 물리적 또는 논리적 IO를 수행하지 않습니다.

66
Ivan Bosnic

이 위키 백과 기사가 명확하게 도움이 될 것 같습니다.

http://en.wikipedia.org/wiki/DUAL_table

DUAL 테이블은 모든 Oracle 데이터베이스 설치에 기본적으로 존재하는 특수한 1 행 테이블입니다. SYSDATE 또는 USER와 같은 의사 열을 선택하는 데 적합합니다. 테이블에는 값이 "X"인 DUMMY라는 단일 VARCHAR2 (1) 열이 있습니다.

20
Jorge Ferreira

오라클의 특별한 테이블입니다. 시스템 변수를 계산하거나 확인하는 데 자주 사용합니다. 예를 들면 다음과 같습니다.

  • Select 2*4 from dual 계산 결과를 인쇄합니다
  • Select sysdate from dual는 서버의 현재 날짜를 인쇄합니다.
10
Martin08

1 행 1 열만있는 Oracle의 유틸리티 테이블. 많은 산술 연산을 수행하는 데 사용되며 일반적으로 알려진 출력을 생성해야하는 경우에 사용할 수 있습니다.

SELECT * FROM dual;

여기에 표시된대로 "DUMMY"라는 단일 열과 "X"값이있는 단일 행이 제공됩니다.

DUMMY
----- 
X
4
AB01

유사 테이블의 종류에 대해 명령을 실행하고 sysdate와 같은 결과를 얻을 수 있습니다. 또한 Oracle이 작동하는지 확인하고 SQL 구문을 확인하는 등의 작업을 수행합니다.

4
Kevan Emmott

DUAL에 대한 더 많은 사실 ....

http://asktom.Oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388

여기 스릴 넘치는 실험과 Tom의 스릴 넘치는 설명

3

DUAL 테이블은 모든 Oracle 데이터베이스 설치에 기본적으로 존재하는 특수한 1 행 테이블입니다. SYSDATE 또는 USER와 같은 의사 열을 선택하는 데 사용하기에 적합합니다.

테이블에 값이 "X"인 DUMMY라는 단일 VARCHAR2 (1) 열이 있습니다.

http://en.wikipedia.org/wiki/DUAL_table 에서 모든 내용을 읽을 수 있습니다.

2
Sakin

PL/SQL 개발시 SQL에서만 사용 가능한 함수를 사용하려면 DUAL이 필요합니다.

예 :.

DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", 'stuff')
INTO x
FROM dual;
END;
1
steevc

DUAL 주로 시퀀스에서 다음 숫자를 얻는 데 사용했습니다.

구문 : SELECT 'sequence_name'. NEXTVAL FROM DUAL

한 행에 하나의 열 값 (NEXTVAL 열 이름)을 반환합니다.

0
Vishwa G

그 리턴 1 빈 행에 넣을 객체입니다. 예를 들어 : 이중에서 1을 선택하십시오. 1을 반환

이중에서 21 + 44를 선택하십시오. 65를 반환

이중에서 [sequence] .nextval을 선택하십시오. 시퀀스에서 다음 값을 반환합니다.

0
Gonzalo Merayo

select ... from dual이 필요한 또 다른 상황은 내장 된 DBMS_METADATA.GET_DDL 함수를 사용하여 다른 데이터베이스 객체 (예 : TABLE, FUNCTION, TRIGGER, PACKAGE)에 대한 코드 (데이터 정의)를 검색하려는 경우입니다.

select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;

select DBMS_METADATA.GET_DDL('FUNCTION','<function_name>') from DUAL;

오늘날 IDE는 테이블의 DDL을 볼 수있는 기능을 제공하지만 SQL Plus와 같은 간단한 환경에서는 이것이 매우 유용 할 수 있습니다.

편집

보다 일반적인 상황 : 기본적으로 표준 SQL 문 내에서 PL/SQL 프로 시저를 사용해야하거나 명령 줄에서 프로 시저를 호출하려는 경우 :

select my_function(<input_params>) from dual;

두 조리법은 Josh Juneau와 Matt Arena의 'Oracle PL/SQL Recipes'책에서 발췌 한 것입니다.

0
Newton fan 01

DUAL은 모든 Oracle 데이터베이스에 기본적으로 존재하는 특수한 한 행, 하나의 열 테이블입니다. DUAL의 소유자는 SYS입니다.

DUAL은 Oracle Database에서 데이터 기능과 함께 자동으로 생성 한 테이블입니다. 항상 운영 체제 기능 (날짜, 시간, 산술 표현 등)을 얻는 데 사용됩니다.

SELECT SYSDATE from dual;  
0
Manjunatha B