другая ситуация, которая требует 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» Джоша Джуно и Мэтта Арены