Share to:

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

  1. ^ a b c "14 SQL and PL/SQL". Oracle Documentation. Oracle. Hentet 2026-01-29.
  2. ^ a b c "Database PL/SQL Language Reference (21c)". Oracle Documentation. Oracle. Hentet 2026-01-29.
  3. ^ "PL/SQL support". IBM Documentation. IBM. Hentet 2026-01-29.
  4. ^ "Compatibility features for Oracle". IBM Documentation. IBM. Hentet 2026-01-29.

Eksterne henvisninger

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.

  1. 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:
  2. 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.
  3. 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.
  4. 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.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya