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