Mit `SELECT` eine Funktion aufrufen

Ich stoße gelegentlich auf Beispiele, bei denenSELECT...INTO...FROM DUAL wird zum Aufrufen einer Funktion verwendet -

SELECT some_function INTO a_variable FROM DUAL;

wird anstelle von @ verwend

a_variable := some_function;

Meine Annahme ist, dass es keine gute Praxis ist, weil A) es unklar macht, dass eine Funktion aufgerufen wird, und B) es ineffizient ist, dass es einen Übergang von der PL / SQL-Engine zur SQL-Engine erzwingt (möglicherweise) weniger ein Problem heute).

Kann jemand erklären, warum dies geschehen sein könnte, z. War dies in der frühen PL / SQL-Codierung erforderlich, um eine Funktion aufzurufen? Der Code, den ich gerade betrachte, stammt möglicherweise aus Oracle 8.

Alle Einblicke geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage