Dieses Oracle-Lernprogramm zeigt, wie Sie eine Pipeline-Funktion erstellen. Befolgen Sie diese Schritte:
1. Erstellen Sie ein Type-Objekt
Für die Oracle-Pipelinefunktion benötigen wir ein Typobjekt, über das wir die Zeilen senden können. Erstellen Sie eines wie folgt:
CREATE OR REPLACE TYPE t_list AS TABLE OF VARCHAR2(2000); /
2. Erstellen Sie eine gespeicherte Funktion als PIPELINED
Die folgende Funktion verwendet den obigen Typ, um die Werte zurückzugeben. Und Zeilen werden nacheinander durch einen Cursor basierend auf einer SQL-Abfrage erzeugt:
CREATE OR REPLACE FUNCTION get_values RETURN t_list PIPELINED IS l_list t_list; w_row_count NUMBER := 0; BEGIN for cur in ( SELECT 'LINE' || level as value FROM dual CONNECT BY level <= 20 ) loop PIPE ROW ( cur.value ); w_row_count := w_row_count + 1; end loop; dbms_output.put_line('Total ' || w_row_count || ' rows selected'); END get_values; /
3. Rufen Sie die Funktion mit einer SQL-Abfrage auf
Jetzt können wir endlich die obige Funktion aufrufen und die Zeilen wie gewünscht erhalten:
select * from TABLE(get_values());
Ausgabe:
COLUMN_VALUE |
---|
LINE1 |
LINE2 |
LINE3 |
LINE4 |
LINE5 |
LINE6 |
LINE7 |
LINE8 |
LINE9 |
LINE10 |
… |
-
So generieren Sie Einfügeanweisungen aus Textdateien für die SQL Server-Tabelle in SQL Server - SQL Server / TSQL-Tutorial Teil 106
-
So erstellen Sie eine Nicht-Null-Einschränkung für eine Spalte in einer SQL Server-Tabelle – SQL Server / T-SQL-Tutorial Teil 51
-
Datenbankmodelle für E-Commerce Teil 1:Der Newsletter
-
Umgang mit einem GDI-Ressourcenleck