Questo tutorial Oracle mostra come creare una funzione Pipelined. Segui questi passaggi:
1. Crea un oggetto tipo
Per la funzione pipeline di Oracle, dobbiamo avere un oggetto di tipo attraverso il quale possiamo inviare le righe. Creane uno come di seguito:
CREATE OR REPLACE TYPE t_list AS TABLE OF VARCHAR2(2000); /
2. Crea una funzione memorizzata come PIPELINED
La funzione seguente utilizza il tipo precedente per restituire i valori. E le righe vengono prodotte una per una tramite un cursore basato su una query SQL:
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. Chiama la funzione utilizzando la query SQL
Ora finalmente, possiamo chiamare la funzione sopra e possiamo ottenere le righe come desiderato:
select * from TABLE(get_values());
Uscita:
COLUMN_VALUE |
---|
LINE1 |
LINE2 |
LINE3 |
LINE4 |
LINE5 |
LINE6 |
LINE7 |
LINE8 |
LINE9 |
LINE10 |
… |