--tworzysz typ, który będzie jednym rekordem
CREATE OR REPLACE TYPE pozycje AS object
(
l_p NUMBER,
towar VARCHAR2(7),
nazwa VARCHAR2(30),
jm VARCHAR2(3),
netto NUMBER,
brutto number
);
/
CREATE OR REPLACE TYPE pozycje_tab
AS TABLE OF pozycje;
--a potem funkcje
FUNCTION TowaryWPojemniku(
c_id_dok IN VARCHAR2,
c_nr_poj IN NUMBER)
RETURN pozycje_tab pipelined AS
BEGIN
FOR cur IN (SELECT l_p, towar, nazwa, jm, netto, brutto FROM opakowania_hierarchiczne_v WHERE id_dok = c_id_dok AND nr_nadrzednego = c_nr_poj)
LOOP
pipe ROW(pozycje(cur.l_p, cur.towar, cur.nazwa, cur.jm, cur.netto, cur.brutto));
END LOOP;
RETURN;
END TowaryWPojemniku;
--a odwołujesz się tak
select * from TABLE(TowaryNaPalecie('aa', 1))
UWAGA: Działa od Oracle 10
qkamill napisał(a)
Wielkie dzięki, potrzebuje takie procedury np. do tego by podawać warunki zapytania i żeby zwracała mi odpowiednie wartości np. będę chciał wyswietlić wszytskie osoby które mieszkają w jakimś mieście ale nie konkretnym. i dlatego chce sobie zrobić procedure która to robi i jako parametr dać miasto i wtedy będe sobie mógł wpisac dowolne miasto i procedura mi zwróci tabele z wynikami tj. wszytski osobami co mieszkaja w podanym mieście.
potrzebujesz zapytania z parametrem a nie procedury