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.