Da ich hier schon des öfteren Prozeduren gesehen habe (
MSSQL &
IB/
FB), die sich wie Views verhalten, wollte ich mich mal schlau machen, warum Oracle das nicht unterstützt.
Die Antwort ist simpel: Das Ganze funktioniert (zumindest beim
SQL Svr) über zwei Threads.
Der erste arbeitet die Prozedur ab und schickt die Werte (mit suspend) durch eine Pipe an den zweiten.
Das kann in einer großen
DB niemals funktionieren da es einfach zu viel Leistung schluckt (sicher nicht mehr als 20-30 User, bei mehr wird es zu Verzögerungen kommen, die der User bemerken würde).
Ein wesentlich effektiverer Weg wäre es einen Verweis auf einen Cursor zu übergeben.
Falls die
FB/
IB-Komponenten (sie arbeiten doch direkt mit der
API von
FB/
IB ?) das ähnlich wie es manche Ora-Kompos unterstützen, könntest du mit dem Rückgabewert sofort ein DataSet oder eine
Query "bestücken".