Tabellenwert-Funktionen in ORACLE 11g ? ( parametrisierte views )
Ich habe gesehen, Diskussionen über diese in der Vergangenheit, wie hier. Aber ich Frage mich, wenn irgendwo entlang der Linie, vielleicht 10g oder 11g (wir sind mit 11g), ORACLE eingeführt hat jeder bessere Unterstützung für "parametrisierte sichten", ohne dass ein Wurf auf die Datenbank, in der alle Arten von benutzerdefinierten Typen und/oder den cursor-Definitionen oder sys_context Variablen alle über.
Ich hoffe, dass vielleicht die ORACLE-Unterstützung für etwas, das einfach "nur funktioniert", gemäß dem folgenden Beispiel in T-SQL:
CREATE FUNCTION [dbo].[getSomeData] (@PRODID ROWID)
RETURNS TABLE AS
RETURN SELECT PRODID, A, B, C, D, E
FROM MY_TABLE
WHERE PRODID = @PRODID
Dann einfach nur die Auswahl es als so:
SELECT * FROM dbo.getSomeData(23)
Ich habe gehofft, für die gleiche Sache...
InformationsquelleAutor eidylon | 2010-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keine Notwendigkeit für SYS_CONTEXT oder den cursor-Definitionen.
Sie brauchen einen Typ, so dass, wenn der SQL geparst wird, es kann bestimmen, welche Spalten werden zurückgegeben.
Das heißt, Sie können leicht ein Skript schreiben, das generieren, die Art und collection-Typ-Definitionen für eine oder mehrere Tabellen auf der Grundlage der Daten in user_tab_columns.
Den nächsten
Nicht erfüllen', ohne Wurf auf die Datenbank, in der alle Arten von benutzerdefinierten Typen' Anforderung.
InformationsquelleAutor Gary Myers
Ist es möglich zu definieren, eine Art "eingestellt" views in Oracle.
Die Schritte sind:
Um diesen Mechanismus zu verwenden ist, einem Benutzer sollte:
SELECT
Daten aus der Ansicht,BEMERKUNG: es ist unerlässlich für den Benutzer, der alle drei Schritte in nur einer Sitzung, da das Paket Mitglieder Bereich ist genau eine Sitzung.
InformationsquelleAutor Cristi Boboc
Es gibt ZWEI Arten von Tabellenwert-Funktionen in SQL SERVER:
Inline-table-valued function: Für eine inline-Tabellenwertfunktion, es gibt keine Funktion Körper; die Tabelle ist das Ergebnis einer einzigen
SELECT
- Anweisung. Dieser Typ genannt werden'parametrisierte Ansicht' und es hat keine Entsprechung in ORACLE als ich weiß.
Aus mehreren Anweisungen bestehenden Tabellenwertfunktion: Bei einer aus mehreren Anweisungen bestehenden Tabellenwertfunktion, der Hauptteil der Funktion, definiert in einem
BEGIN...END
- block enthält eine Reihe von Transact-SQL-Anweisungen, erstellen und einfügen von Zeilen in die Tabelle zurückgegeben werden.Dem obigen Beispiel (Von Gary Myers) erstellt eine Tabelle-Funktion der zweiten Art und ist es NICHT eine "parametrisierte Ansicht'.
InformationsquelleAutor Mahmoud H. Sadat