я иногда встречаются примеры, где SELECT...INTO...FROM DUAL
используется для вызова функции - например:Использование `SELECT` для вызова функции
SELECT some_function INTO a_variable FROM DUAL;
используется вместо
a_variable := some_function;
Мой взять на это что это не очень хорошая практика, потому что A) он не понимает, что функция вызывается, а B) она неэффективна в том, что она заставляет переход от PL/SQL-движка к движку SQL (возможно, сегодня это проблема).
Может кто-нибудь объяснить, почему это могло быть сделано, например. было ли это необходимо в раннем PL/SQL-кодировании для вызова функции? Код, который я ищу, может быть датирован уже с Oracle 8.
Любые идеи оцениваются.
Я думаю, что очень старые версии Oracle (такие как Oracle 8 и 9) фактически не поддерживали назначение с помощью функции. –
Насколько я помню, второй синтаксис доступен с 10g. Вы уверены, что он побежал на 8i? –
@a_horse_with_no_name - Я знаю, что 9i поддерживает прямое назначение из функций (например, 'a_variable: = some_function;'). Но 8i может и не быть - мне никогда не приходилось работать с ним. Благодаря! –