Este tutorial do Oracle mostra como criar a função Pipelined. Siga esses passos:
1. Criar um objeto de tipo
Para a função de pipeline do Oracle, devemos ter um objeto de tipo por meio do qual podemos enviar as linhas. Crie um como abaixo:
CREATE OR REPLACE TYPE t_list AS TABLE OF VARCHAR2(2000); /
2. Crie uma função armazenada como PIPELINED
A função a seguir usa o tipo acima para retornar os valores. E as linhas são produzidas uma a uma por meio de um cursor baseado em uma consulta 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. Chamar a função usando consulta SQL
Agora, finalmente, podemos chamar a função acima e obter as linhas conforme desejado:
select * from TABLE(get_values());
Saída:
COLUMN_VALUE |
---|
LINE1 |
LINE2 |
LINE3 |
LINE4 |
LINE5 |
LINE6 |
LINE7 |
LINE8 |
LINE9 |
LINE10 |
… |
-
Tipo de dados ENUM (enumeração) no MySQL:12 principais fatos e dicas úteis
-
Usando o sinalizador de rastreamento 3226 para suprimir o log de backup de log
-
Práticas recomendadas do mysqldump:Parte 1 – Pré-requisitos do MySQL
-
Tornando seus componentes de banco de dados altamente disponíveis (HA) por meio de balanceadores de carga