PL/ SQL Block: STRUKTUR, Syntaks, ANONYM Eksempel

Hva er PL/SQL-blokk?

I PL/SQL kjøres ikke koden i enkeltlinjeformat, men den kjøres alltid ved å gruppere koden i et enkelt element kalt Blocks. I denne opplæringen skal du lære om disse blokkene.

Blokker inneholder både PL/SQL samt SQL-instruksjoner. Alle disse instruksjonene vil bli utført som en helhet i stedet for å utføre en enkelt instruksjon om gangen.

Blokkstruktur

PL/SQL-blokker har en forhåndsdefinert struktur der koden skal grupperes. Nedenfor er forskjellige deler av PL/SQL-blokker.

  1. Erklæringsdelen
  2. Utførelsesseksjonen
  3. Unntak-Håndtering seksjon

Bildet nedenfor illustrerer de forskjellige PL/SQL-blokkene og deres seksjonsrekkefølge.

Blokkstruktur

Erklæringsseksjonen

Dette er den første delen av PL/SQL-blokkene. Denne delen er en valgfri del. Dette er seksjonen der deklarasjonen av variabler, markører, unntak, underprogrammer, pragmainstruksjoner og samlinger som er nødvendig i blokken vil bli deklarert. Nedenfor er noen flere kjennetegn ved denne delen.

  • Denne spesielle delen er valgfri og kan hoppes over hvis ingen erklæringer er nødvendig.
  • Dette bør være den første delen i en PL/SQL-blokk, hvis den finnes.
  • Denne delen starter med nøkkelordet 'DECLARE' for utløsere og anonym blokkering. For andre underprogrammer vil ikke dette nøkkelordet være til stede. I stedet markerer delen etter definisjonen av underprogramnavnet deklarasjonsdelen.
  • Denne delen skal alltid følges av utførelsesdelen.

Utførelsesseksjonen

Utførelsesdelen er den viktigste og obligatoriske delen som faktisk utfører koden som er skrevet i den. Siden PL / SQL forventer at de kjørbare setningene fra denne blokken kan ikke være en tom blokk, dvs. den bør ha minst én gyldig kjørbar kodelinje i seg. Nedenfor er noen flere kjennetegn ved denne delen.

  • Denne kan inneholde både PL/SQL-kode og SQL-kode.
  • Denne kan inneholde én eller flere blokker i den som en nestet blokk.
  • Denne delen starter med nøkkelordet 'BEGIN'.
  • Denne delen bør følges enten av 'END' eller seksjonen for unntakshåndtering (hvis den finnes)

Seksjon for unntakshåndtering

Unntaket er uunngåelig i programmet som oppstår under kjøring og for å håndtere dette Oracle har gitt en seksjon for håndtering av unntak i blokker. Denne delen kan også inneholde PL/SQL-setninger. Dette er en valgfri del av PL/SQL-blokkene.

  • Dette er seksjonen der unntaket som er reist i utførelsesblokken håndteres.
  • Denne delen er den siste delen av PL/SQL-blokken.
  • Kontroll fra denne delen kan aldri gå tilbake til utførelsesblokken.
  • Denne delen starter med nøkkelordet 'UNNTAK'.
  • Denne delen skal alltid etterfølges av nøkkelordet 'END'.

Nøkkelordet 'END' markerer slutten på PL/SQL-blokken.

PL/SQL blokksyntaks

Nedenfor er syntaksen til PL/SQL-blokkstrukturen.

PL/SQL blokksyntaks

DECLARE --optional
    <declarations>

BEGIN   --mandatory
    <executable statements. At least one executable statement is mandatory>

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

OBS: En blokk skal alltid følges av '/' som sender informasjonen til kompilatoren om slutten av blokken.

Typer PL/SQL-blokker

PL/SQL-blokker er hovedsakelig av to typer.

  1. Anonyme blokker
  2. Navngitte blokker

Anonyme blokker

Anonyme blokker er PL/SQL-blokker som ikke har noen navn tildelt dem. De må opprettes og brukes i samme økt fordi de ikke vil bli lagret på serveren som databaseobjekter.

Siden de ikke trenger å lagre i databasen, trenger de ingen kompileringstrinn. De skrives og utføres direkte, og kompilering og utførelse skjer i en enkelt prosess.

Nedenfor er noen flere kjennetegn ved anonyme blokker.

  • Disse blokkene har ikke noe referansenavn spesifisert for dem.
  • Disse blokkene starter med nøkkelordet 'DECLARE' eller 'BEGIN'.
  • Siden disse blokkene ikke har noe referansenavn, kan disse ikke lagres for senere formål. De skal opprettes og utføres i samme sesjon.
  • De kan kalle de andre navngitte blokkene, men kall til anonym blokk er ikke mulig da den ikke har noen referanse.
  • Den kan ha nestet blokk i seg som kan navngis eller anonym. Den kan også nestes i alle blokker.
  • Disse blokkene kan ha alle tre delene av blokken, der utførelsesdelen er obligatorisk, de to andre delene er valgfrie.

Navngitte blokker

Navngitte blokker har et spesifikt og unikt navn for dem. De lagres som databaseobjekter på serveren. Siden de er tilgjengelige som databaseobjekter, kan de refereres til eller brukes så lenge de finnes på serveren. Kompileringsprosessen for navngitte blokker skjer separat mens de opprettes som databaseobjekter.

Nedenfor er noen flere kjennetegn ved navngitte blokker.

  • Disse blokkene kan kalles fra andre blokker.
  • Blokkstrukturen er den samme som en anonym blokk, bortsett fra at den aldri starter med nøkkelordet 'DECLARE'. I stedet vil det starte med nøkkelordet 'CREATE' som instruerer kompilatoren til å lage det som et databaseobjekt.
  • Disse blokkene kan nestes i andre blokker. Den kan også inneholde nestede blokker.
  • Navngitte blokker er i hovedsak av to typer:
  1. Prosedyre
  2. Funksjon

Vi vil lære mer om disse navngitte blokkene i "Prosedyre" og "Funksjon"-emner i senere opplæring.

Sammendrag

Etter denne opplæringen bør du være klar over PL/SQL-blokker og dens typer, ulike deler av blokker og deres bruk. Den detaljerte beskrivelsen av de navngitte PL/SQL-blokkene vil bli dekket i den senere opplæringen.