PL/SQL (Procedural Language/Structured Query Language) er Oracles procedurale udvidelse til SQL, designet til at kunne kombinere SQL-udsagn med klassiske, procedurale konstruktioner som betingelser, løkker og fejlhåndtering i databasen.
PL/SQL bruges især til at opbygge genanvendelige programenheder i databasen, herunder procedurer, funktioner, pakker og triggere, og kan afvikles som anonyme blokke eller som lagret kode i databasen.
Beskrivelse PL/SQL er et blokstruktureret sprog, hvor kode typisk organiseres i blokke med deklarationer, eksekverbare udsagn og eventuel undtagelsesbehandling (exception handling).
Sproget gør det muligt at: deklarere variabler og konstanter skrive kontrolflow (IF, CASE, LOOP, m.fl.) håndtere fejl via undtagelser (exceptions) samle relateret funktionalitet i pakker (packages)
Programenheder I PL/SQL optræder programlogik ofte som: Anonyme blokke – PL/SQL-blokke der afvikles direkte (fx via et værktøj eller et klientkald) Lagrede procedurer og funktioner – navngivne enheder gemt i databasen Pakker – en samling af relaterede procedurer/funktioner/typer under ét namespace Triggere – kode der automatisk afvikles ved bestemte databasehændelser (fx DML på en tabel)
Implementeringer og kompatibilitet PL/SQL er tæt knyttet til Oracle Database og dokumenteres som en del af Oracles officielle database-dokumentation.
IBM Db2 understøtter også PL/SQL-kompatible funktioner og sprogelementer som del af Oracles kompatibilitetsfunktioner, blandt andet variabler og visse PL/SQL-konstruktioner.
Eksempel Nedenstående viser et forenklet eksempel på en anonym PL/SQL-blok med variabel, kontrolflow og fejlhåndtering:
DECLARE v_ant NUMBER := 0; BEGIN SELECT COUNT(*) INTO v_ant FROM employees WHERE department_id = 10;
IF v_ant = 0 THEN DBMS_OUTPUT.PUT_LINE('Ingen medarbejdere i afdeling 10'); ELSE DBMS_OUTPUT.PUT_LINE('Antal medarbejdere i afdeling 10: ' || v_ant); END IF;
EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Fejl: ' || SQLERRM); END; /
Se også SQL Oracle Database Stored procedure Trigger
Referencer
Eksterne henvisninger
Kategori:Programmeringssprog Kategori:Oracle software Kategori:Databaser