sql >> Databáze >  >> RDS >> Oracle

Příklad zřetězené funkce Oracle

Tento tutoriál Oracle ukazuje, jak vytvořit funkci Pipelined. Postupujte takto:

1. Vytvořte objekt typu

Pro zřetězenou funkci Oracle musíme mít typový objekt, přes který můžeme posílat řádky. Vytvořte jej následovně:

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

2. Vytvořte uloženou funkci jako PROPOJENOU

Následující funkce používá výše uvedený typ k vrácení hodnot. A řádky produkují jeden po druhém přes kurzor na základě dotazu 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. Volání funkce pomocí SQL Query

Nyní konečně můžeme zavolat výše uvedenou funkci a získat řádky podle potřeby:

select * from TABLE(get_values());

Výstup:

COLUMN_VALUE
LINE1
LINE2
LINE3
LINE4
LINE5
LINE6
LINE7
LINE8
LINE9
LINE10
10 řádků po 20
  1. Vytvoření clusteru Docker Swarm Cluster ve službě Azure Container Service

  2. Omezení vráceného záznamu z SQL dotazu v Oracle

  3. Jak vytvořit sekvenci v MySQL

  4. Připnutí tabulky do mezipaměti Flash