Oracle
 sql >> Base de données >  >> RDS >> Oracle

Exemple de fonction en pipeline Oracle

Ce tutoriel Oracle montre comment créer une fonction Pipeline. Suivez ces étapes :

1. Créer un objet Type

Pour la fonction en pipeline d'Oracle, nous devons avoir un objet de type à travers lequel nous pouvons envoyer les lignes. Créez-en un comme ci-dessous :

CREATE OR REPLACE TYPE t_list AS TABLE OF VARCHAR2(2000);
/

2. Créer une fonction stockée comme PIPELINED

La fonction suivante utilise le type ci-dessus pour renvoyer les valeurs. Et les lignes produisent une par une via un curseur basé sur une requête 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. Appelez la fonction à l'aide d'une requête SQL

Enfin, nous pouvons appeler la fonction ci-dessus et obtenir les lignes souhaitées :

select * from TABLE(get_values());

Sortie :

COLUMN_VALUE
LINE1
LINE2
LINE3
LINE4
LINE5
LINE6
LINE7
LINE8
LINE9
LINE10
10 rangées de 20