Referenční cursor v PL SQL v ORACLE databázi
Sekce: Programování / Oracle Datum: 24.11.2015, Autor: MrK, ID: 5, přečteno 1937x
Jak vytvořit cursor dynamicky skládáním stringů?
Procedure Vyhledano(xID in varchar2, xNaze in varchar2) IS
TYPE XCUR IS REF CURSOR;
cpt XCUR;
xSelectPrikaz varchar2(32000);
xIDV varchar2(500);
xNazev varchar2(500);
begin
htp.p('<html><body>');
xSelectPrikaz:='SELECT id, naze from dbtable where id in (' || xID || ') and naze like ''%'|| xNaze || '%''';
htp.p('SELECT: ' || xSelectPrikaz|| '<br><br>');
htp.p('<table>');
htp.p('<tr>');
htp.p('<td>ID</td>');
htp.p('<td>Název</td>');
htp.p('</tr>');
OPEN cpt FOR xSelectPrikaz;
loop
FETCH cpt INTO xIDPrip,xName,xDatR,xCSpis;
exit when cpt%notfound;
htp.p('<tr><td>'||xIDV || '</td><td>' || xNazev || '</td></tr>' );
end loop;
CLOSE cpt;
exception
when others then
HTP.PREOPEN;
htp.p(DBMS_UTILITY.FORMAT_ERROR_STACK);
htp.p(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
htp.preclose;
end;
Do parametru xID pak může přijít např text "12,13,14,15"
Llze takto složit kompletní Select včetně názvů tabulek, funkcí aj.