PL/SQL er et blokkstrukturert språk som gjør det mulig for utviklere å kombinere kraften til SQL med prosedyresetninger. Alle setningene til en blokk sendes til oracle-motoren på en gang, noe som øker prosesseringshastigheten og reduserer trafikken.
Grunnleggende om PL/SQL
- •PL/SQL står for Procedural Language extensions til Structured Query Language (SQL).
- PL/SQL er en kombinasjon av SQL sammen med de prosedyremessige funksjonene til programmeringsspråk.
- Oracle bruker en PL/SQL-motor for å behandle PL/SQL-setningene.
- PL/SQL inkluderer prosessuelle språkelementer som betingelser og looper. Den tillater erklæring av konstanter og variabler, prosedyrer og funksjoner, typer og variabler av disse typene og utløsere.
Ulemper med SQL:
- SQL gir ikke programmererne en teknikk for tilstandskontroll, looping og forgrening.
- SQL-setninger sendes til Oracle-motoren én om gangen, noe som øker trafikken og reduserer hastigheten.
- SQL har ingen mulighet for feilkontroll under manipulering av data.
Funksjoner av PL/SQL:
- PL/SQL er i utgangspunktet et prosedyrespråk, som gir funksjonaliteten til beslutningstaking, iterasjon og mange flere funksjoner i prosedyreprogrammeringsspråk.
- PL/SQL kan utføre et antall spørringer i en blokk ved å bruke en enkelt kommando.
- Man kan lage en PL/SQL-enhet som prosedyrer, funksjoner, pakker, triggere og typer, som lagres i databasen for gjenbruk av applikasjoner.
- PL/SQL gir en funksjon for å håndtere unntaket som oppstår i PL/SQL-blokken kjent som unntakshåndteringsblokk.
- Applikasjoner skrevet i PL/SQL er portable til maskinvare eller operativsystem der Oracle er operativt.
- PL/SQL Tilbyr omfattende feilkontroll.
Forskjeller mellom SQL og PL/SQL:
SQL | PL/SQL |
SQL er en enkelt spørring som brukes til å utføre DML- og DDL-operasjoner. | PL/SQL er en blokk med koder som brukes til å skrive hele programblokkene/prosedyren/funksjonen osv. |
Det er deklarativt, som definerer hva som må gjøres, snarere enn hvordan ting må gjøres. | PL/SQL er prosedyre som definerer hvordan tingene må gjøres. |
Utfør som en enkelt setning. | Utfør som en hel blokk. |
Brukes hovedsakelig til å manipulere data. | Brukes hovedsakelig til å lage en applikasjon. |
Kan ikke inneholde PL/SQL-kode i den. | Det er en utvidelse av SQL, så det kan inneholde SQL i det. |
Struktur av PL/SQL-blokk:
PL/SQL utvider SQL ved å legge til konstruksjoner som finnes i prosedyrespråk, noe som resulterer i et strukturelt språk som er kraftigere enn SQL. Grunnenheten i PL/SQL er en blokk. Alle PL/SQL-programmer er bygd opp av blokker, som kan nestes i hverandre.
Vanligvis utfører hver blokk en logisk handling i programmet. En blokk har følgende struktur:
DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
- Erklære delen starter med ERKLÆRE nøkkelord der variabler, konstanter, poster som markører kan deklareres som lagrer data midlertidig. Det består i utgangspunktet av definisjon av PL/SQL-identifikatorer. Denne delen av koden er valgfri.
- Utførelsesdelen starter med BEGYNNE og avsluttes med SLUTT nøkkelord. Dette er en obligatorisk seksjon, og her er programlogikken skrevet for å utføre alle oppgaver som looper og betingede utsagn. Den støtter alle DML kommandoer, DDL kommandoer og SQL*PLUS innebygde funksjoner også.
- Unntaksdelen starter med UNNTAK nøkkelord. Denne delen er valgfri som inneholder setninger som kjøres når en kjøretidsfeil oppstår. Eventuelle unntak kan håndteres i denne delen.
PL/SQL identifikatorer
Det er flere PL/SQL-identifikatorer som variabler, konstanter, prosedyrer, markører, triggere etc.
skuespillerinne zeenat aman
- Variabler : Som flere andre programmeringsspråk, må variabler i PL/SQL deklareres før de brukes. De bør også ha et gyldig navn og datatype. Syntaks for deklarasjon av variabler:
variable_name datatype [NOT NULL := value ];>
- Eksempel for å vise hvordan du deklarerer variabler i PL/SQL:
C
SQL>SET SERVEROUTPUT PÅ;> SQL>ERKLÆR> > var1 INTEGER;> > var2 REAL;> > var3 varchar2(20) ;> BEGIN> > null;> END;> /> |
>
>
- Produksjon:
PL/SQL procedure successfully completed.>
- Forklaring:
- SETTE PÅ SERVEROUTPUT : Den brukes til å vise bufferen som brukes av dbms_output.
- var1 HELTAL: Det er erklæringen av variabel, kalt var1 som er av heltallstype. Det er mange andre datatyper som kan brukes som float, int, real, smallint, long etc. Den støtter også variabler brukt i SQL, så vel som NUMBER(prec, scale), varchar, varchar2 etc.
- PL/SQL-prosedyre fullført.: Den vises når koden er kompilert og utført.
- Skråstrek (/) etter END;: Skråstreken (/) forteller SQL*Plus å utføre blokken.
- Oppdragsoperatør (:=) : Den brukes til å tilordne en verdi til en variabel.
- Viser utgang : Utdataene vises ved å bruke DBMS_OUTPUT som er en innebygd pakke som gjør det mulig for brukeren å vise utdata, feilsøkingsinformasjon og sende meldinger fra PL/SQL-blokker, underprogrammer, pakker og triggere. La oss se et eksempel for å se hvordan du viser en melding ved hjelp av PL/SQL:
C
parallell behandling
SQL>SET SERVEROUTPUT PÅ;> SQL>ERKLÆR> > var varchar2(40) :=> 'I love GeeksForGeeks'> ;> > BEGIN> > dbms_output.put_line(var);> > END;> > /> |
>
>
- Produksjon:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
- Forklaring:
- dbms_output.put_line : Denne kommandoen brukes til å dirigere PL/SQL-utgangen til en skjerm.
- Bruke kommentarer : Som i mange andre programmeringsspråk, også i PL/SQL, kan kommentarer legges i koden som ikke har noen effekt i koden. Det er to syntakser for å lage kommentarer i PL/SQL:
- Enkeltlinjekommentar: For å lage en enkeltlinjekommentar , symbolet– –benyttes.
- Flerlinjekommentar: For å lage kommentarer som spenner over flere linjer, symbolet/*og*/benyttes.
- Tar innspill fra bruker : Akkurat som i andre programmeringsspråk, også i PL/SQL, kan vi ta innspill fra brukeren og lagre det i en variabel. La oss se et eksempel for å vise hvordan du tar innspill fra brukere i PL/SQL:
C
romertall 1 100
SQL>SET SERVEROUTPUT PÅ;> SQL>ERKLÆR> > -- taking input> for> variable a> > a number := &a;> > > -- taking input> for> variable b> > b varchar2(30) := &b;> > BEGIN> > null;> > END;> > /> |
>
python skriv json til filen
>
- Produksjon:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed.>
- (***) La oss se et eksempel på PL/SQL for å demonstrere alle ovennevnte konsepter i en enkelt kodeblokk.
C
--PL/SQL code to print sum of two numbers taken from the user.> SQL>SET SERVEROUTPUT PÅ;> SQL>ERKLÆR> > > -- taking input> for> variable a> > a integer := &a ;> > > -- taking input> for> variable b> > b integer := &b ;> > c integer ;> > BEGIN> > c := a + b ;> > dbms_output.put_line(> 'Sum of '> ||a||> ' and '> ||b||> ' is = '> ||c);> > END;> > /> |
>
>
Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>
PL/SQL-utførelsesmiljø:
PL/SQL-motoren ligger i Oracle-motoren. Oracle-motoren kan behandle ikke bare enkelt SQL-setning, men også blokk med mange setninger. Anropet til Oracle-motoren trenger kun å gjøres én gang for å utføre et hvilket som helst antall SQL-setninger hvis disse SQL-setningene er samlet inne i en PL/SQL-blokk.