PL / SQL-veiledning: Alt du trenger å vite om PL / SQL



PL / SQL-opplæringen dekker all detaljert forklaring av alle nødvendige konsepter som kreves for å mestre PL / SQL-programmering med forskjellige eksempler

PL / SQL er et prosedyrespråk som overvinner manglene Strukturert spørrespråk . Det er en utvidelse av SQL, og vi kan til og med bruke SQL-spørsmål uten problemer i noe PL / SQL-program eller program. I denne PL / SQL-veiledningen vil vi gå gjennom de grunnleggende begrepene PL / SQL i detalj. Følgende emner er dekket i denne artikkelen.

Hva er PL / SQL?

Det står for prosessuell språkutvidelse til strukturert spørrespråk . Oracle opprettet PL / SQL som utvider noen begrensninger av SQL for å gi en mer omfattende løsning for å bygge oppdragskritiske applikasjoner som kjører på Oracle .





logo-pl / sql tutorial - edureka

Egenskaper

  • PL / SQL gir funksjonaliteten til et prosessuelt språk som beslutningstaking, iterasjon, etc.

  • Ved hjelp av en enkelt kommando kan PL / SQL utføre et antall spørsmål.



  • Vi kan også bruke PL / SQL-enheter som funksjoner, utløsere, prosedyrer osv. Som er lagret i databasen etter opprettelsen.

  • PL / SQL har også en unntakshåndteringsblokk som håndterer unntakene i PL / SQL.

  • Omfattende feilkontroll er også mulig ved bruk av PL / SQL



  • Applikasjonene skrevet i PL / SQL er bærbare til annen maskinvare og operativsystemer forutsatt at oracle må være operativt.

PL / SQL vs SQL

SQL PL / SQL
SQL er et enkelt spørsmål som brukes til å utføre DDL- og DML-operasjonerPL / SQL er en blokk med koder som brukes til å definere et helt program eller en prosedyre / funksjon osv
Den definerer egentlig ikke hvordan ting må gjøres, men definerer heller hva som må gjøresPL / SQL definerer hvordan ting må gjøres
Den utfører en enkelt uttalelseDen utfører en blokk med uttalelser på en gang.
SQL brukes hovedsakelig til å manipulere dataenePL / SQL, derimot, brukes til å lage applikasjoner
Den kan ikke inneholde PL / SQL-kodeSiden det er en SQL-utvidelse, kan den inneholde SQL-kode i den

Blokker strukturer i PL / SQL

PL / SQL organiserer vanligvis koden i blokker. Kodeblokken uten navn er kjent som en anonym blokk. Det er kjent som den anonyme blokken fordi den ikke er lagret i Oracle-databasen. La oss ta en titt på en anonym blokk i PL / SQL.

[DEKLARERE] erklæringserklæringer [BEGIN] utførelseserklæringer [UNNTAK] unntakssetninger

Ser vi på diagrammet vist ovenfor, kan vi se at blokkstrukturen er delt inn i fire deler, dvs. erklæring, begynnelse, unntak og slutt. La oss prøve å forstå hvordan blokkstrukturen fungerer i PL / SQL. Av alle disse seksjonene er utførelsesdelen obligatorisk, og resten er valgfri.

  • ERKLÆRE nøkkelord brukes til for erklæringen seksjonen brukes til å erklære datatyper og strukturer som variabler, funksjoner, etc.

  • BEGYNNE nøkkelord brukes til utførelsesdelen. Det er obligatorisk og inneholder alle uttalelsene som må utføres. Denne blokken er der forretningslogikken er definert, vi kan bruke både prosessuelle eller SQL-setninger i denne blokken.

  • De UNNTAK nøkkelord brukes til unntaksdelen. Den inneholder alle unntakssetningene.

  • SLUTT nøkkelord markerer slutten av blokken og skråstrek ‘/’ forteller verktøyet du bruker (Oracle Database Tool) for å utføre PL / SQL-blokken.

Her er et enkelt eksempel for å vise hvordan vi kan bruke PL / SQL-koden.

BEGIN NULL END /

Nå som vi vet hvordan blokkstrukturen fungerer i PL / SQL, la oss forstå de forskjellige aspektene ved PL / SQL som å erklære, navngi og tilordne verdier til variablene.

PL / SQL-variabler

Variabelen i PL / SQL er i utgangspunktet et navn som varierer eller midlertidig lagringssted som støtter en bestemt datatype. La oss se på hvordan vi kan bruke variablene i et PL / SQL-program.

Regler for variabel navngivning

PL / SQL følger følgende regler for navngivning av variabler.

  • Variabelen kan ikke bestå av mer enn 31 tegn

  • Navnet på variabelen skal starte med et ASCII-tegn. Siden PL / SQL er mellom store og små bokstaver, vil store og små bokstaver være forskjellige variabler.

  • Etter det første tegnet må det være et spesialtegn ($, _) eller et hvilket som helst tall.

Navngivningskonvensjoner

Bruk følgende navngivningskonvensjoner oppført nedenfor for å bruke variablene.

Prefiks Data-type
v_VARCHAR2
n_ANTALL
t_BORD
r_RAD
d_DATO
b_BOOLEAN

Erklæring

La oss prøve å forstå hvordan variabel erklæring gjøres i PL / SQL

Erklæringen inkluderer variabelnavnet etterfulgt av datatypen og atskilt med semikolon. Følgende er et eksempel for å vise hvordan du kan erklære en variabel i PL / SQL.

ERKLÆR v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

Du kan også legge til lengden på datatypen som vi har gjort i eksemplet ovenfor.

Ankere

Ankeret refererer i utgangspunktet til bruken av% TYPE-nøkkelordet som for å erklære en variabel med datatypen knyttet til en kolonnes datatype for en bestemt kolonne i en tabell.

Se på et eksempel for å forstå dette. Anta at vi har en tabell MEDARBEIDERE, vi kan bruke ankerene på følgende måte.

ERKLÆR v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Oppdrag

Variabel tildeling er ganske enkel, vi kan bruke oppdragsoperatøren til å tilordne verdier til en variabel. Følgende eksempel viser hvordan vi kan tilordne verdier til en variabel.

ERKLÆR v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Initialisering

Vi kan initialisere en verdi for variabelen i erklæringsdelen også. Følgende eksempel viser hvordan vi kan initialisere verdier til en variabel.

ERKLÆR v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Nå som vi vet hvordan vi kan jobbe med variablene, la oss prøve å forstå hvordan vi skal bruke funksjoner i PL / SQL.

Funksjon i PL / SQL

En funksjon i PL / SQL er i utgangspunktet en navngitt blokk som returnerer en verdi. Det er også kjent som en underrutine eller et underprogram, følgende syntaks viser hvordan vi kan bruke funksjoner i PL / SQL.

OPPRETT [ELLER ERSTATT] FUNKSJON funksjonsnavn [(parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN statements return return_data_type EXCEPTION END /

Først og fremst må du spesifisere et funksjonsnavn etter nøkkelordet. Funksjonsnavnet må starte med et verb. En funksjon kan ha ingen, en eller flere parametere som vi spesifiserer i parametere. Vi må spesifisere datatypen for hver parameter eksplisitt, og deretter kommer modusen som kan gjøre et av følgende.

hvordan få lengden på en matrise i javascript
  • IN - IN-parameteren er en skrivebeskyttet parameter.

  • UT - Det er en skriveparameter

  • UT - IN OUT-parameteren er både lese- og skriveparameter.

Her er et enkelt eksempel for å vise hvordan vi bruker funksjoner i PL / SQL.

OPPRETT ELLER ERSTAT FUNKSJON try_parse (iv_nummer I VARCHAR2) RETURNUMMER ER BEGINN RETUR til_nummer (iv_nummer) UNNTAK NÅR andre DAN RETURER NULL SLUTT

Ringe til en funksjon

La oss prøve å kalle funksjonen vi har laget i en anonym blokk i følgende eksempel.

STIL SERVERUTGANG PÅ STØRRELSE 1000000 ERKLÆR n_x nummer n_y nummer n_z nummer BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_xUT) DBMS_UT n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Vi kan også kalle funksjonen i en SELECT-setning. Nå som vi vet hvordan vi kan bruke funksjoner i PL / SQL, la oss prøve å forstå hvordan vi jobber med prosedyrer i PL / SQL.

hvordan du bruker en iterator i java

PL / SQL-prosedyre

En prosedyre er i utgangspunktet en blokk som gjør en bestemt oppgave. Ved hjelp av en prosedyre kan vi pakke inn eller kapsle kompleks forretningslogikk og bruke dem i både applikasjons- og databaselag.

La oss se på et enkelt eksempel for å forstå hvordan prosedyren fungerer i PL / SQL

OPPRETT ELLER ERSTAT PROSEDYRE justeringslønn (in_ ansatt_id I MEDARBEIDERE.EMPLOYEE_ID% TYPE, i_prosent I ANTAL) ER BEGYNN - oppdater ansattes lønn OPPDATER medarbeidere SETT lønn = lønn + lønn * i prosent / 100 DER ansatt_id = in_medarbeider_id END

I eksemplet ovenfor har vi to parametere, prosedyren justerer lønnen med en gitt prosent, og UPDATE-nøkkelordet oppdaterer verdien i lønnsinformasjonen.

Fremgangsmåtehode

Avsnittet før nøkkelordet IS kalles prosedyretittelen. Følgende er noen tips som du må være kjent med mens du arbeider med prosedyrer.

  • skjema - Det er det valgfrie navnet på skjemaet som prosedyren tilhører.

  • Navn - Navnet på prosedyren som skal begynne med et verb.

  • parametere - Det er den valgfrie listen over parametere.

  • GODKJENT - Den avgjør om prosedyren skal utføres med privilegiet til den nåværende brukeren eller den opprinnelige eieren av prosedyren.

Prosedyreorgan

Alt som kommer etter IS-nøkkelordet kalles prosedyreorganet. Vi har erklæringen, unntak og utførelseserklæringer i prosedyreorganet. I motsetning til funksjonen, brukes RETURN-nøkkelordet i en prosedyre for å stoppe utførelsen og returnere kontrollen til den som ringer.

Kaller en prosedyre

La oss se hvordan vi kan kalle en prosedyre i PL / SQL.

EXEC procedure_name (param1, param2 & hellipparamN)

Vi kan ringe prosedyrene uten parametere ved å bare bruke EXEC-nøkkelordet og prosedyrenavnet. Nå som vi vet hvordan vi kan jobbe med prosedyrer, la oss prøve å forstå hvordan nestede blokker brukes i PL / SQL.

Nestet blokk

En nestet blokk er bare en kombinasjon av en eller flere PL / SQL-blokker for å få bedre kontroll over utførelsen og eksepsjonell håndtering av programmet.

Her er et enkelt eksempel på en nestet blokk.

SET SERVEROUTPUT ON SIZE 1000000 DEKLARERE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGYN DEKLARE n_emp_id ansatte. Arbeidstaker_id% TYPE: = & emp_id2 v_name ansatte.forste_navn% TYPE BEGIN SELECT__NAVN_navn av ansatt '|| n_emp_id ||' er '|| v_name) UNNTAK NÅR ingen_data_funnet DAN DBMS_OUTPUT.PUT_LINE (' Ansatt '|| n_emp_id ||' ikke funnet ') SLUT SLUTT /

Den ytre PL / SQL-blokken i eksemplet ovenfor er kjent som foreldreblokken eller omsluttende blokken, den indre blokken, derimot, er kjent som barneblokken eller den vedlagte blokken.

Det er ikke en god idé å bruke variablene med samme navn i begge blokkene, fordi underblokkvariabelen under utførelsen vil overstyre den overordnede blokkvariabelen. Det skjer fordi PL / SQL prioriterer variabelen i sin egen blokk.

Blokk etikett

Vi kan løse dette problemet med blokketiketten som hjelper oss med å henvise til variabler i blokker ved hjelp av en etikett.

Her er et enkelt eksempel for å vise hvordan vi kan bruke en blokketikett.

 <>ERKLÆR ... BEGIN ... SLUT

Å bruke en blokkmerke hjelper til med å forbedre lesbarheten til koden, få bedre kontroll og gjøre referanser til blokkene. Nå som vi vet hvordan vi kan jobbe med nestede blokker, la oss prøve å forstå hvordan IF STATEMENT fungerer i PL / SQL.

IF-uttalelse

PL / SQL har tre IF-UTTALELSER

  • HVIS DA - Det er den enkleste HVIS ERKLÆRINGEN hvis tilstanden er sann, vil uttalelsene utføre, hvis tilstanden er falsk, gjør den ingenting.

  • IF-THEN-ELSE - I dette blir ELSE-leddet lagt til for en alternativ sekvens av utsagn.

  • IF-THEN-ELSEIF - Det lar oss utføre flere testbetingelser i en sekvens.

IF-THEN Syntaks

HVIS-tilstand DÅ sekvens_av_uttalelser SLUT HVIS

IF-THEN-ELSE Syntaks

HVIS-tilstand DEN sequence_of_if_statements ELSE sequence_of_else_statements END IF

IF-THEN-ELSEIF syntaks

HVIS-betingelse1 DEN sekvens_av_uttalelser1 ELSIF-tilstand2 DAN-sekvens_ av_oppgavene2 ELSE-sekvens_av_uttalelser3 END HVIS

Nå som vi er ferdige med IF STATEMENT, la oss se på CASE-setningen i PL / SQL.

CASE-uttalelse

CASE-setningen hjelper i utgangspunktet med å utføre en sekvens av uttalelser basert på en velger. En velger kan i dette tilfellet være hva som helst, det kan være en variabel, funksjon eller et enkelt uttrykk. Her er et enkelt eksempel for å vise syntaksen til CASE-setningen i PL / SQL.

[<>] SAK [SANT | selector] NÅR uttrykk1 DAN sekvens_av_uttalelser1 NÅR uttrykk2 SÅ sekvens_ av_uttalelser2 ... NÅR uttrykkN SÅ sekvens_av_uttalelserN [ELSE sekvens_av_oppgaveneN + 1] SLUTT TILFALL [etikettnavn]

I syntaksen ovenfor kommer velgeren etter CASE-nøkkelordet. PL / SQL evaluerer velgeren bare en gang for å bestemme hvilken uttalelse som skal utføres.

Etterfulgt av velgeren er NÅR søkeordet. Hvis uttrykket tilfredsstiller velgeren, blir den tilsvarende utsagnet etter DEN nøkkelordet utført.

Nå som vi vet hvordan vi kan bruke en CASE-setning, la oss prøve å forstå hvordan vi vil bruke loop-setningene i PL / SQL.

javascript får størrelsen på matrisen

Loop Statement

En loop-setning i PL / SQL er en iterativ setning som lar deg utføre en sekvens av setninger flere ganger. Her er et enkelt eksempel for å vise syntaksen til en loop-setning i PL / SQL.

LOOP sekvens_av_uttalelser END LOOP

Det må være minst en kjørbar uttalelse mellom nøkkelordet LOOP og END LOOP.

Sløyfe med EXIT-erklæring

EXIT og EXIT når uttalelser lar deg gå ut av loop. EXIT WHEN uttalelse avslutter løkken betinget mens EXIT avslutter utførelsen ubetinget.

LOOP ... SLUT NÅR tilstand END LOOP

Loop Label

En loop-etikett brukes til å kvalifisere navnet på loop-counter-variabelen når den brukes i en nestet loop. Følgende er syntaksen til en loopetikett.

 <>LOOP-sekvens_av_uttalelser END LOOP-etikett

Nå som vi vet hvordan vi kan bruke loop-setningene, la oss ta en titt på mens loop-setninger for bedre forståelse.

While Loop Statement

Vi kan bruke WHILE loop-setningen når antall henrettelser ikke er definert før utførelsen starter. Følgende syntaks brukes til en WHILE loop-setning i PL / SQL.

HVILKET tilstand LOOP sekvens_av_uttalelser END LOOP

Betingelsen i syntaksen er en boolsk verdi eller et uttrykk som evalueres til å være enten SANT, FALSE eller NULL. Hvis tilstanden er SANT, vil utsagnene utføres, hvis den er FALSK, stopper utførelsen og kontrollen går til neste kjørbare uttalelse.

Nå som vi vet hvordan vi kan bruke en WHILE loop-setning, la oss ta en titt på FOR-loop-setningen.

For Loop Statement

En FOR-loop-setning i PL / SQL lar oss utføre en sekvens av utsagn for et bestemt antall ganger. Følgende er syntaksen for å bruke FOR loop-setning i PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. higher_bound LOOP sequence_of_statements END LOOP

PL / SQL oppretter en lokal variabel loop_counter automatisk med en INTEGER-datatype for loop, slik at du ikke trenger å erklære det eksplisitt. Nedre..høyere er området som sløyfen itererer over. Du må også ha minst en kjørbar uttalelse mellom LOOP og END LOOP søkeord.

Nå som vi vet hvordan vi kan bruke loop-setningene i PL / SQL, la oss ta en titt på eksepsjonell håndtering i PL / SQL.

Eksepsjonell håndtering

I PL / SQL behandles alle slags feil som et unntak. Et unntak kan behandles som en spesiell tilstand som kan endre eller endre utførelsesflyten. I PL / SQL er det to typer unntak.

  • System unntak - Den heves av PL / SQL-kjøretiden når den oppdager en feil.

  • Programmerer-Defined Exception - Disse unntakene er definert av programmereren i et bestemt program.

Definere et unntak

Et unntak i PL / SQL må erklæres før det kan heves. Vi kan definere unntaket ved hjelp av nøkkelordet UNNTAK som vi har gjort i eksemplet nedenfor.

EXCEPTION_NAME EXCEPTION

For å få et unntak bruker vi RAISE-nøkkelordet.

HØY EXCEPTION_NAME

Så alt handlet om PL / SQL, jeg håper denne artikkelen har hjulpet deg med å øke verdien til din kunnskap. For mer informasjon om SQL eller databaser, kan du se vår omfattende leseliste her: .

Hvis du ønsker å få en strukturert opplæring på MySQL, så sjekk ut vår som kommer med instruktørledet live-opplæring og reell prosjektopplevelse. Denne opplæringen vil hjelpe deg med å forstå MySQL i dybden og hjelpe deg med å mestre emnet.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet til ” PL / SQL veiledning ”Og jeg kommer tilbake til deg.