sql >> Database teknologi >  >> RDS >> Oracle

Eksempel på Oracle Pipelined funktion

Denne Oracle-tutorial viser, hvordan du opretter Pipelined-funktion. Følg disse trin:

1. Opret et typeobjekt

Til Oracle pipelinet funktion skal vi have et typeobjekt, som vi kan sende rækkerne igennem. Opret en som nedenfor:

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

2. Opret en gemt funktion som PIPELINED

Den følgende funktion bruger ovenstående type til at returnere værdierne. Og rækker producerer én efter én gennem en markør baseret på en SQL-forespørgsel:

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. Kald funktionen ved hjælp af SQL-forespørgsel

Nu endelig kan vi kalde ovenstående funktion og kan få rækkerne som ønsket:

select * from TABLE(get_values());

Output:

COLUMN_VALUE
LINE1
LINE2
LINE3
LINE4
LINE5
LINE6
LINE7
LINE8
LINE9
LINE10
...
10 rækker af 20
  1. Installation af Oracle Forms and Reports 11g Release 2

  2. Se min 'Optimering af Microsoft Access med SQL Server'-præsentation

  3. SQL MELLEM Operatør for begyndere

  4. hurtigt valg af en tilfældig række fra en stor tabel i mysql