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