programing

Oracle의 듀얼 테이블이란 무엇입니까?

megabox 2023. 3. 10. 21:25
반응형

Oracle의 듀얼 테이블이란 무엇입니까?

나는 사람들이 이 표를 언급하는 것을 들었고 그것이 무엇에 관한 것인지 확신하지 못했다.

이것은 데이터에 실제로 관심이 없을 때 선택하는 데 사용되는 단일 레코드가 있는 일종의 더미 테이블입니다. 대신 선택 스테이트먼트에서 시스템 기능의 결과를 원하는 경우:

★★select sysdate from dual;

http://www.adp-gmbh.ch/ora/misc/dual.html 를 참조해 주세요.

은 23c를 지원하고 .select sysdate /* or other value */ 를 사용하지 않습니다.from dualMySQL에 대해서입니다.

하나의 요소가 포함된 더미 테이블입니다.Oracle은 다음과 같은 문장을 허용하지 않기 때문에 유용합니다.

 SELECT 3+4

이 제한은 서면으로 해결할 수 있습니다.

 SELECT 3+4 FROM DUAL

대신.

Wikipedia에서

역사

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

Oracle Data Dictionary에서 기본 개체로 DUAL 테이블을 만들었습니다.그 자체가 보이도록 의도된 것이 아니라 쿼리될 것으로 예상되는 뷰 내에서 사용되었습니다.DUAL 테이블에 JOIN을 실행하여 테이블 내의 각 행에 대해 결과에 2개의 행을 작성할 수 있습니다.그런 다음 GROUP BY를 사용함으로써 결과 결합을 요약하여 DATA 익스텐트와 INDEX 익스텐트에 대한 저장 용량을 나타낼 수 있다.DUAL이라는 이름은 하나의 행에서 한 쌍의 행을 만드는 프로세스에 적합한 것 같습니다.1개

위에서는 알 수 없지만 원래 DUAL 테이블에는 2개의 행이 있습니다(따라서 이름이 붙여졌습니다).요즘은 한 줄밖에 없어요.

최적화

DUAL은 원래 테이블이었고 DUAL에서 선택하면 데이터베이스 엔진이 테이블에서 디스크 IO를 수행합니다.일반적으로 디스크 블록은 이미 메모리에 캐시되어 있기 때문에 이 디스크 IO는 일반적으로 논리적 IO(물리 디스크 액세스가 포함되지 않음)였습니다.그 결과 DUAL 테이블에 대해 대량의 논리 IO가 발생하였습니다.

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

나는 이 위키피디아 기사가 명확화에 도움이 될 것이라고 생각한다.

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

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

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

  • Select 2*4 from dual
  • Select sysdate from dual서버의 현재 날짜를 출력합니다.

행과 열이 1개뿐인 Oracle의 유틸리티 테이블입니다.여러 산술 연산을 수행하는 데 사용되며 일반적으로 알려진 출력을 생성해야 할 때 사용할 수 있습니다.

듀얼에서 선택 *;

는 다음과 같이 단일 행에 "DUMMY"라는 이름의 단일 열과 값 "X"를 지정합니다.

DUMMY
----- 
X

명령어를 실행하여 결과를 얻을 수 있는 유사 테이블(sysdate 등)입니다.또한 오라클이 실행 중인지 확인하고 sql 구문 등을 확인할 수 있습니다.

DUAL 테이블은 기본적으로 모든 Oracle 데이터베이스 설치 환경에 있는 특수한 한 행 테이블입니다.SYSDATE 또는 USER 등의 의사 초콜릿 선택에 적합합니다.

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

자세한 내용은 http://en.wikipedia.org/wiki/DUAL_table에서 보실 수 있습니다.

DUAL은 SQL에서만 사용할 수 있는 기능을 사용하기 위해 PL/SQL 개발에 필요합니다.

예.

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

DUAL에 관한 상세 정보...

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

여기서 하는 짜릿한 실험과 톰의 더 짜릿한 설명

DUAL 우리는 주로 시퀀스에서 다음 번호를 얻는 데 사용했어요.

구문 : 'sequence_name'을 선택합니다.듀얼로부터의 다음 버전

그러면 1행 1열 값(NEXTVAL 열 이름)이 반환됩니다.

필요한 select ... from dual 오브젝트(TABLE PACKE 등의입니다.DBMS_METADATA.GET_DDL★★★★

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 Junau와 Matt Arena의 'Oracle PL/SQL 요리법'에서 따온 것이다.

DUAL은 모든 Oracle 데이터베이스에 기본적으로 1행 1열 테이블로 표시됩니다.DUAL의 소유자는 SYS입니다.

DUAL은 Oracle Database에 의해 데이터 함수와 함께 자동으로 생성되는 테이블입니다.항상 운영 체제 함수(날짜, 시간, 산술식 등)를 가져오는 데 사용됩니다.

SELECT SYSDATE from dual;  

빈 행이 1개 반환된 개체에서 에 넣는 오브젝트입니다.예: 듀얼에서 1을 선택하고 1을 반환합니다.

듀얼에서 21+44를 선택하고 65를 반환합니다.

[시퀀스]를 선택합니다.nextval from dual. 시퀀스에서 다음 값을 반환합니다.

언급URL : https://stackoverflow.com/questions/73751/what-is-the-dual-table-in-oracle

반응형