PL/SQL
| Þessi grein þarfnast hreingerningar svo hún hæfi betur sem grein hér á Wikipediu. |
PL/SQL er forritunarmál sem er fylgir Oracle gagnagrunnum. PL/SQL er það forritunarmál sem er notað í gagngrunns triggerum, og stefjum sem vistaðar eru í gagnagrunninum. Reyndar er líka hægt að vista Java forrit í grunninum í sama tilgangi, en PL/SQL er það sem er oftast notað.
Einnig er hægt að keyra PL/SQL forrit án þess að vista þau sem stefjur eða föll í grunninum. Slík forrit eru kölluð ónefndar (e.Anonymous) blokkir til aðgreiningar frá einingum sem eru vistuð undir nafni í grunninum sem fall, stefja, pakki eða trigger.
Einföld PL/SQL blokk:
DECLARE dagur DATE; BEGIN dagur := TRUNC(SYSDATE); END;
Hér er skilgreind breyta af gerðinni date, og síðan byrjar blokk sem sækir daginn í dag (sysdate), sleppir tíma partinum (trunc) og setur niðurstöðuna í breytuna sem var skilgreind.
Annað dæmi. Stundum þarf að setja takmarkanir á hvað leyfilegt er að gera við gögn, og hvernig gögn er leyfilegt að vista. Ef taflan Skraning er svona:
CREATE TABLE skraning ( kennitala VARCHAR(10) NOT NULL, nafn VARCHAR(100) NOT NULL, dags_skraningar DATE NOT NULL );
Þá er hægt að tryggja að ekki séu sett gildi inn í töfluna sem eru fram í tímann og ekki eldri en eins mánaða með því að skrifa trigger í PL/SQL:
CREATE OR REPLACE TRIGGER skraning_bfins before INSERT ON skraning FOR each ROW BEGIN IF :NEW.dags_skraningar > SYSDATE THEN raise_application_error(20001,'Skráningardagur má ekki vera fram í tímann!'); ELSIF SYSDATE - :NEW.dags_skraningar > 30 THEN raise_application_error(20001,'Skráningardagur má ekki vera eldri en 30 daga'); END IF; END; /
Þessi trigger setur takmarkanir á uppfærslur og innlestur á töfluna sjálfa þannig að það komast ekki inn færslur nema þær sem eru leyfilegar.