Ich habe eine Funktion, die ein Objekt mit 3 Werten zurückgibt. Gibt es eine Möglichkeit, diese Funktion aus einer SELECT-Anweisung aufzurufen und jeden Wert eine andere Spalte zu haben? Ich könnte es in 3 Funktionen brechen, aber die Werte sind verwandt, also wollte ich es aus Leistungsgründen als eins behalten. (Also muss oracle nicht für jede Zeile in der Abfrage 3 sehr ähnliche komplexe Funktionen aufrufen.)
Also für:
%Vor%Ich möchte in der Lage sein, test_func von einer select-Anweisung aufzurufen, aber a, b und c müssen verschiedene Spalten sein, ohne die Funktion mehrmals aufzurufen. Ich dachte vielleicht so etwas, aber es funktioniert nicht:
%Vor%Gibt es eine Möglichkeit, in Oracle 10g so etwas zu tun, oder gibt es einen besseren Weg, dieses Problem zu lösen?
Der Tabellenalias platziert das Ergebnis in einen benannten Ergebnismengenkontext, wodurch das Ergebnis als Objektinstanz verwendet werden kann. Ohne den Alias schlägt es fehl, weil das Casting Objekttyp-Instanzen ohne ihre eigene explizite Referenz nicht behandelt, was effektiv der Tabellenalias ist.