Mit 'SELECT' rufen Sie eine Funktion auf

9

Ich treffe gelegentlich auf Beispiele, in denen SELECT...INTO...FROM DUAL zum Aufruf einer Funktion verwendet wird - z. B .:

%Vor%

wird anstelle von

verwendet %Vor%

Ich nehme an, dass es keine gute Übung ist, weil A) es unklar macht, dass eine Funktion aufgerufen wird, und B) es ineffizient ist, da es einen Übergang von der PL / SQL-Engine zur SQL-Engine erzwingt weniger ein Problem heute).

Kann jemand erklären, warum dies getan worden sein könnte, z.B. War das in der frühen PL / SQL-Codierung notwendig, um eine Funktion aufzurufen? Der Code, den ich mir ansehe, stammt möglicherweise bereits aus Oracle 8.

Alle Einsichten geschätzt.

    
Bob Jarvis 22.12.2015, 15:07
quelle

1 Antwort

3

Diese Übung stammt von vorher PLSQL und Oracle 7. Wie bereits erwähnt, war die Zuweisung in Oracle7 möglich (und natürlich Best Practice).

Vor Oracle 7 gab es zwei weit verbreitete Tools, die die Verwendung von Auswählen ... in var von dual benötigten;

Auf der einen Seite gab es früher ein Oracle Tool namens RPT, eine Art Berichtsgenerator. RPT könnte zum Erstellen von Batch-Prozessen verwendet werden. Es gab zwei Arten von Makros, die kombiniert werden konnten, um das zu erreichen, was wir heute für PLSQL verwenden. Mein erster Oracle-Job beinhaltete das Debugging von PLSQL, das von einem Programm erzeugt wurde, das RPT-Chargen entnommen und automatisch in PLSQL konvertiert hat. Ich habe mein einziges RPT-Handbuch irgendwann kurz nach 2000 weggeworfen.

Auf der anderen Seite gab es Oracle Forms 2.x und seine Menu-Komponente. Kontextwechsel in Oracle Menu wurde oft mit einem Select ... von dual gemacht; Ich erinnere mich noch, wie stolz ich war, als ich entdeckte, dass ein nicht zu behebender Bug von insgesamt 6 Datensätze in der Tabelle Dual.

Es tut mir leid zu sagen, dass ich das nicht beweisen kann, aber es ist die Zeit des Jahres, um an die alten Zeiten zurückzudenken und wirklich Spaß daran zu haben, die Antwort zu haben.

    
hendrik_at_mt-ag_com 27.12.2015, 20:36
quelle

Tags und Links