Evo ti jedan najobicniji primjer ugnjezdjene procedure (Nested procedure) u Oracleu:
Code:
CREATE OR REPLACE PROCEDURE transakcija_log (
pID IN NUMBER,
pDatum IN DATE,
pIznos IN NUMBER
)
IS
vIme1 VARCHAR2(32);
PROCEDURE getIme(pID IN NUMBER, pIme OUT VARCHAR2)
IS
vIme2 VARCHAR2(32);
BEGIN
SELECT ime
INTO vIme2
FROM osobe
WHERE osobaID = pID;
pIme := vIme2;
EXCEPTION
WHEN OTHERS THEN
pIme := NULL;
END getIme;
BEGIN
-- iz glavne procedure pozivas ugnjezdjenu proceduru getIme
-- kako bi dobio ime od osobe pod tim ID-em:
getIme(pID, vIme1);
INSERT INTO transakcije_log(id, ime, iznos, datum)
VALUES(pID, pIznos, vIme1, pDatum);
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END transakcija;
/
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA