PL/SQL
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.[1]
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.[1]
Beskrivelse
PL/SQL er et blokstruktureret sprog, hvor kode typisk organiseres i blokke med deklarationer, eksekverbare udsagn og eventuel undtagelsesbehandling (exception handling).[2]
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)[2]
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)[1]
Implementeringer og kompatibilitet
PL/SQL er tæt knyttet til Oracle Database og dokumenteres som en del af Oracles officielle database-dokumentation.[2]
IBM Db2 understøtter også PL/SQL-kompatible funktioner og sprogelementer som del af Oracles kompatibilitetsfunktioner, blandt andet variabler og visse PL/SQL-konstruktioner.[3][4]
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å
Referencer
- ^ a b c "14 SQL and PL/SQL". Oracle Documentation. Oracle. Hentet 2026-01-29.
- ^ a b c "Database PL/SQL Language Reference (21c)". Oracle Documentation. Oracle. Hentet 2026-01-29.
- ^ "PL/SQL support". IBM Documentation. IBM. Hentet 2026-01-29.
- ^ "Compatibility features for Oracle". IBM Documentation. IBM. Hentet 2026-01-29.
Eksterne henvisninger
- "Oracle Database PL/SQL Language Reference (21c)". Oracle Documentation. Oracle. Hentet 2026-01-29.
- "IBM Db2: PL/SQL support". IBM Documentation. IBM. Hentet 2026-01-29.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.









