Oracle’da bir dataset döndürmek için pipe row kullanabilirsiniz. Pipe bir dizi tipine işaret etmekte, row ilede satırlar doldurulmakta.
Aşağıdaki prosedür bir dataset dönecektir.
SELECT akuzhan.GET_MY_DATASET(5) FROM DUAL;
CREATE OR REPLACE FUNCTION akuzhan.GET_MY_DATASET(N IN NUMBER DEFAULT NULL)
RETURN ARRAY
PIPELINED
AS
BEGIN
FOR I IN 1 .. NVL(N,100)
LOOP
IF I=1 THEN
PIPE ROW('ABDULLAH');
ELSIF I=2 THEN
PIPE ROW('KUZHAN');
ELSE
PIPE ROW('UNKNOWN');
END IF;
END LOOP;
RETURN;
END;
/
Ayrıca aşağıdaki şekilde kullanıldığında bir table’dan select çekilmişçesine çalışacaktır.
SELECT * FROM TABLE(akuzhan.GET_MY_DATASET(5));
follow: