set echo on
create or replace procedure ABCD (p_a OUT BOOLEAN, p_b OUT varchar2, p_zadani in PLS_INTEGER := 0) as
begin
if P_ZADANI = 0 then select JMENO into P_B from OSOBA where rownum=1;
else select JMENO into P_B from OSOBA;
end if;
P_A := true;
EXCEPTION
when OTHERS then
P_A := false;
P_B := SQLERRM;
end;
/
PROMPT dopadne to dobře
set SERVEROUTPUT on
declare
g_a BOOLEAN;
g_b varchar2(200);
begin
ABCD(G_A, G_B);
if G_A then DBMS_OUTPUT. PUT_LINE('dopadlo to dobře, výsledek je ' || G_B);
else DBMS_OUTPUT. PUT_LINE('dopadlo to špatně z důvodu ' || G_B);
end if;
end;
/
PROMPT dopadne to špatně
declare
G_A BOOLEAN;
g_b varchar2(200);
begin
ABCD(G_A, G_B, 1);
if G_A then DBMS_OUTPUT. PUT_LINE('dopadlo to dobře, výsledek je ' || G_B);
else DBMS_OUTPUT. PUT_LINE('dopadlo to špatně z důvodu ' || G_B);
end if;
end;
/