Что такое двойная таблица в Oracle? - PullRequest
214 голосов
/ 16 сентября 2008

Я слышал, как люди обращались к этой таблице, и не был уверен, о чем она.

Ответы [ 14 ]

0 голосов
/ 13 мая 2019

DUAL - это специальная таблица с одной строкой и одним столбцом, присутствующая по умолчанию во всех базах данных Oracle. Владелец DUAL - SYS.

DUAL - это таблица, автоматически создаваемая Oracle Database вместе с функциями данных. Он всегда используется для получения функций операционных систем (таких как дата, время, арифметическое выражение и т. Д.)

SELECT SYSDATE from dual;  
0 голосов
/ 17 января 2018

другая ситуация, которая требует select ... from dual, - это когда мы хотим получить код (определение данных) для различных объектов базы данных (таких как TABLE, FUNCTION, TRIGGER, PACKAGE), используя встроенную функцию 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, это может быть очень удобно.

EDIT

более общая ситуация: в основном, когда нам нужно использовать любую процедуру PL / SQL внутри стандартного оператора SQL или когда мы хотим вызвать процедуру из командной строки:

select my_function(<input_params>) from dual;

оба рецепта взяты из книги «Oracle PL / SQL Recipes» Джоша Джуно и Мэтта Арены

0 голосов
/ 31 июля 2014

DUAL мы в основном использовали для получения следующего числа из последовательностей.

Синтаксис: ВЫБЕРИТЕ 'sequence_name'.NEXTVAL FROM DUAL

Будет возвращено значение в одну строку в одном столбце (имя столбца NEXTVAL).

0 голосов
/ 16 сентября 2008

Это объект для вставки из этой возвращаемой 1 пустой строки. Например: выберите 1 из двойного; возвращает 1

выберите 21 + 44 из двойного; возвращает 65

выберите [последовательность] .nextval из двойного; возвращает следующее значение из последовательности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...