30 most important pl sql interview questions
Topp PL / SQL intervju spørsmål med eksempler som hjelper deg med å forberede deg på det kommende intervjuet:
Hva er PL / SQL?
PL / SQL (Procedural Language / SQL) er i utgangspunktet en prosessuell utvidelse av Oracle - SQL. PL / SQL hjelper brukeren med å utvikle komplekse databaseapplikasjoner ved hjelp av kontrollstrukturer, prosedyrer, funksjoner, moduler, etc.
Denne artikkelen vil diskutere det beste PL / SQL-intervjuspørsmålet og svarene.
PL / SQL intervju spørsmål og svar
La oss begynne!!
Q # 1) Differensiere PL / SQL og SQL?
Svar: Forskjellen mellom SQL og PL / SQL kan kategoriseres som følger:
SQL | PL / SQL |
---|---|
SQL er et naturlig språk som er veldig nyttig for interaktiv behandling. | PL / SQL er en prosessuell utvidelse av Oracle - SQL. |
Ingen prosessuelle evner som tilstandstesting, looping tilbys av SQL. | PL / SQL støtter prosedyremuligheter så vel som høye språkfunksjoner som betingede utsagn, sløyfesetninger osv. |
Alle SQL-setninger kjøres av databaseserveren en om gangen, og det er derfor en tidkrevende prosess. | PL / SQL-setninger sender hele utsagnblokken til databaseserveren samtidig, og dermed reduseres nettverkstrafikken betraktelig. |
Ingen feilhåndteringsprosedyrer er det i SQL. | PL / SQL støtter tilpasset feilhåndtering. |
Q # 2) Oppgi karakteristikkene til PL / SQL?
Svar:
Kjennetegn ved PL / SQL er som følger:
- PL / SQL gir tilgang og deling av de samme underprogrammene av flere applikasjoner.
- Det er kjent for bærbarhet av kode, da kode kan kjøres på ethvert operativsystem forutsatt at Oracle er lastet på det.
- Med PL / SQL kan brukere skrive sine egne tilpassede feilhåndteringsrutiner.
- Forbedret transaksjonsytelse med integrasjon til Oracle data ordbok.
Q # 3) Hva er datatypene tilgjengelige i PL / SQL?
Svar: Datatyper definerer måtene å identifisere datatypen og deres tilknyttede operasjoner.
Det er fire typer forhåndsdefinerte datatyper forklart som følger:
- Skalar datatyper: En skalar datatype er en atomdatatype som ikke har noen interne komponenter.
- For eksempel
- CHAR (tegnverdi med fast lengde mellom 1 og 32 767 tegn)
- VARCHAR2 (variabel lengde for tegnverdien mellom 1 og 32 767 tegn)
- NUMBER (verdier med fast desimal, flytende desimal eller heltall)
- BOOLEAN (logisk datatype for TRUE FALSE eller NULL-verdier)
- DATE (lagrer dato og klokkeslett)
- LONG (tegndata med variabel lengde)
- Sammensatte datatyper: En sammensatt datatype består av andre datatyper og interne komponenter som lett kan brukes og manipuleres. For eksempel, OPPTAK, BORD og VARRAY.
- Referansedatatyper: En referansedatatype inneholder verdier, kalt pekere som betegner andre programelementer eller dataelementer. For eksempel, REF-PEKER.
- Data for store objekter: En datatype med stort objekt inneholder verdier, kalt locators, som definerer plasseringen til store objekter (for eksempel videoklipp, grafisk bilde osv.) Som er lagret utenfor linjen.
- For eksempel
- BFILE (binær fil)
- BLOB (binært stort objekt)
- CLOB (Tegn stort objekt)
- NCLOB (NCHAR type stort objekt)
Anbefalt lesing = >> PL SQL-datatyper
Q # 4) Forklar formålet med% TYPE og% ROWTYPE datatyper med eksemplet?
Svar: PL / SQL bruker attributtet% TYPE-deklarasjon for forankring. Dette attributtet gir datatypen til en variabel, konstant eller kolonne. % TYPE-attributt er nyttig når man deklarerer en variabel som har samme datatype som en tabellkolonne.
For eksempel, variabelen m_empno har samme datatype og størrelse som kolonnen empno i tabell emp.
m_empno emp.empno%TYPE;
% ROWTYPE-attributt brukes til å erklære en variabel som en post som har samme struktur som en rad i en tabell. Raden er definert som en post, og feltene har samme navn og datatyper som kolonnene i tabellen eller visningen.
For eksempel:
dept_rec dept%ROWTYPE;
Dette erklærer en post som kan lagre en hel rad for DEPT-tabellen.
Sp # 5) Hva forstår du av PL / SQL-pakker?
Svar: PL / SQL-pakker er skjemaobjekter som grupperer funksjoner, lagrede prosedyrer, markører og variabler på ett sted.
Pakker har to obligatoriske deler:
- Pakkespesifikasjoner
- Pakkehus
Q # 6) Hva forstår du av PL / SQL-markører?
Svar: PL / SQL krever en spesiell evne til å hente og behandle mer enn en rad, og den ressursen er kjent som markører. En markør er en peker til kontekstområdet, som er et minneområde som inneholder SQL-setninger og informasjon for behandling av utsagnene.
PL / SQL Cursor er i utgangspunktet en mekanisme der flere rader med data fra databasen velges, og deretter behandles hver rad individuelt i et program.
Q # 7) Forklar markørtypene.
hva er en god musikknedlasting for android
Svar: Det er to typer markører.
De forklares som følger:
a) Eksplisitte markører: For spørsmål som returnerer mer enn én rad, blir en eksplisitt markør erklært og navngitt av en programmerer. For å bruke eksplisitt markør i PL / SQL følges fire trinn
- Erklær markøren
Syntaks: MARKER er
SELECT uttalelse;
Her er navnet som er tildelt markøren, og SELECT-setningen er spørringen som returnerer rader til markørens aktive sett.
- Åpne markøren
Syntaks: ÅPEN ;
Hvor er navnet på den tidligere definerte markøren.
- Hent rader fra markøren
Syntaks: HENT INN;
Her refererer til navnet på den tidligere definerte markøren som rader hentes fra.
representerer listen over variabler som vil motta dataene som hentes.
- Lukke markøren
Syntaks: LUKK ;
Her er navnet på markøren som lukkes.
b) Implisitte markører: Når en SQL-setning kjøres, oppretter PL / SQL automatisk en markør uten å definere at slike markører er kjent som implisitte markører.
For de følgende utsagnene bruker PL / SQL implisitte markører
- SETT INN
- OPPDATER
- SLETT
- SELECT (spørsmål som returnerer nøyaktig en rad)
Sp # 8) Når bruker vi utløsere?
Svar: Ordet ‘Trigger’ betyr å aktivere. I PL / SQL er utløseren en lagret prosedyre som definerer en handling utført av databasen når den databaserelaterte hendelsen utføres.
Utløsere kreves hovedsakelig for følgende formål:
- For å opprettholde komplekse integritetsbegrensninger
- Revisjonstabellinformasjon ved å registrere endringene
- Signaliserer andre programhandlinger når det gjøres endringer i tabellen
- Håndheve komplekse forretningsregler
- Forebygge ugyldige transaksjoner
Sp # 9) Forklar forskjellen i utførelsen av utløsere og lagrede prosedyrer?
Svar: En lagret prosedyre utføres eksplisitt ved å utstede en prosedyreanropserklæring fra en annen blokk via en prosedyreanrop med argumenter.
Utløseren utføres implisitt hver gang en utløsende hendelse som forekomsten av DML-utsagn skjer.
hvordan åpne et nytt prosjekt i formørkelse
Sp # 10) Forklar forskjellen mellom utløsere og begrensninger?
Svar: Utløsere er forskjellige fra begrensninger på følgende måter:
Utløsere | Begrensninger |
---|---|
Bare påvirk de radene som er lagt til etter at utløseren er aktivert. | Påvirker alle radene i tabellen, inkludert de som allerede eksisterer når begrensningen er aktivert. |
Utløsere brukes til å implementere komplekse forretningsregler som ikke kan implementeres ved bruk av integritetsbegrensninger. | Begrensninger opprettholder integriteten til databasen. |
Sp # 11) Hva er en PL / SQL-blokk?
Svar: I PL / SQL er utsagn gruppert i enheter kalt Blocks. PL / SQL-blokker kan omfatte konstanter, variabler, SQL-setninger, sløyfer, betingede utsagn, unntakshåndtering. Blokker kan også bygge en prosedyre, en funksjon eller en pakke.
I det store og hele, PL / SQL-blokker er to typer:
(i) Anonyme blokker: PL / SQL-blokker uten overskrift er kjent som anonyme blokker. Disse blokkene danner ikke kroppen til en prosedyre, funksjon eller utløsere.
Eksempel:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Navngitte blokker: PL / SQL-blokker med overskrift eller etiketter er kjent som Navngitte blokker. Navngitte blokker kan enten være underprogrammer (prosedyrer, funksjoner, pakker) eller utløsere.
Anbefalt lesing = >> PL SQL-prosedyrer og funksjoner
Eksempel:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
Q # 12) Skille mellom syntaks og kjøretidsfeil?
Svar:
Syntaksfeil er den som enkelt kan identifiseres av en PL / SQL-kompilator. Disse feilene kan være en stavefeil osv.
Runtime feil er de feilene i PL / SQL-blokken som en unntakshåndteringsdel skal inkluderes for å håndtere feilene. Disse feilene kan være SELECT INTO-setning som ikke returnerer noen rader.
Q # 13) Hva er COMMIT, ROLLBACK og SAVEPOINT?
Svar: COMMIT, SAVEPOINT og ROLLBACK er tre transaksjonsspesifikasjoner tilgjengelig i PL / SQL.
FORPLIGTING Når DML-operasjon utføres, manipulerer den bare data i databasebuffer, og databasen forblir upåvirket av disse endringene. For å lagre / lagre disse transaksjonsendringene i databasen, må vi BINNE transaksjonen. COMMIT-transaksjonen lagrer alle utestående endringer siden forrige COMMIT, og følgende prosess skjer
- Berørte radlås frigjøres
- Transaksjonen er merket som fullført
- Transaksjonsdetaljer er lagret i dataordlisten.
Syntaks: BEGÅ;
ROLLBACK-uttalelse: Når vi ønsker å angre eller slette alle endringene som har skjedd i den nåværende transaksjonen så langt, trenger vi å bli rullet tilbake av transaksjonen. Med andre ord, ROLLBACK sletter alle utestående endringer siden siste COMMIT eller ROLLBACK.
Syntaks for å tilbakestille en transaksjon fullstendig:
TILBAKE;
SAVEPOINT uttalelse: SAVEPOINT-setningen gir et navn og markerer et poeng i behandlingen av den gjeldende transaksjonen. Endringene og låsene som har skjedd før SAVEPOINT i transaksjonen bevares mens de som oppstår etter SAVEPOINT frigjøres.
Syntaks:
SAVEPOINT;
Sp # 14) Hva er mutasjonstabellen og begrensningstabellen?
Svar: En tabell som for øyeblikket blir endret av en DML-setning som å definere utløsere i en tabell, er kjent som en Muterende bord .
En tabell som det kan være nødvendig å lese fra for en referanseintegritetsbegrensning er kjent som begrensende bord .
Sp # 15) Hva er faktiske parametere og formelle parametere?
Svar: Variablene eller et uttrykk referert til som parametere som vises i fremgangsmåten, kalles Faktiske parametere .
For eksempel: raise_sal (emp_num, fortjeneste + beløp);
Her i eksemplet ovenfor er emp_num og beløp de to faktiske parametrene.
Variablene som er deklarert i prosedyrens overskrift og det refereres til i prosedyren, kalles som Formelle parametere .
For eksempel:
PROSEDYRE raise_sal (emp_id INTEGER) IS
curr_sal ekte:
……… ..
BEGYNNE
VELG sal INTO cur_sal FRA emp WHERE empno = emp_id;
…….
END raise_sal;
Her i eksemplet ovenfor fungerer emp_id som en formell parameter.
Q # 16) Hva er forskjellen mellom ROLLBACK og ROLLBACK TO-setninger?
Svar: Transaksjonen avsluttes helt etter ROLLBACK-uttalelse, dvs. ROLLBACK-kommandoen angrer en transaksjon fullstendig og frigjør alle låser.
På den annen side er en transaksjon fortsatt aktiv og kjører etter ROLLBACK TO-kommandoen, da den bare angrer en del av transaksjonen frem til den gitte SAVEPOINT.
Q # 17) Skriv et PL / SQL-skript for å vise følgende serie med tall: 99,96,93 …… 9,6,3?
Svar
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; /
Q # 18) Hva er de 3 modiene for parameter?
Svar: Tre modi for parameteren er IN, OUT, IN OUT.
Disse kan forklares som følger:
- IN-parametere: IN-parametere lar deg overføre verdier til prosedyren som kalles, og kan initialiseres til standardverdier. IN-parametere fungerer som en konstant og kan ikke tildeles noen verdi.
- UT-parametere: OUT-parametere returnerer verdien til den som ringer, og de må spesifiseres. OUT-parametere fungerer som en ikke-initialisert variabel og kan ikke brukes i et uttrykk.
- IN UT parametere: IN OUT parametere overfører startverdier til en prosedyre og returnerer oppdaterte verdier til den som ringer. IN OUT-parametere fungerer som en initialisert variabel og skal tildeles en verdi.
Spørsmål nr. 19) Hvorfor er% ISOPEN alltid usant for en implisitt markør?
Svar: En implisitt markør, SQL% ISOPEN-attributt er alltid falsk fordi den implisitte markøren åpnes for en DML-setning og lukkes umiddelbart etter utførelsen av DML-setningen.
Spørsmål nr. 20) Når en DML-setning kjøres, i hvilke markørattributter, blir resultatet av uttalelsen lagret?
Svar: Utfallet av uttalelsen lagres i fire markørattributter.
Disse er:
program for å overvåke cpu og gpu temp
- SQL% FUNNT
- SQL% NOTFOUND
- SQL% ROWCOUNT
- SQL% ISOPEN
Q # 21) Hva er måtene å kommentere i en PL / SQL-kode?
Svar: Kommentarer er teksten som følger med koden for å forbedre lesbarheten og for forståelsen av leseren. Disse kodene blir aldri utført.
Det er to måter å kommentere i PL / SQL:
1) Enkelts kommentar: Denne kommentaren starter med dobbelt -.
Eksempel:
ERKLÆRE
nummer NUMMER (2); - det er en lokal variabel.
BEGYNNE
2) Flerlinjekommentar: Denne kommentaren starter med / * og slutter med * /.
Eksempel:
BEGYNNE
num: = & p_num; / * Dette er en vertsvariabel som brukes i programdelen * /
……….
SLUTT
Spørsmål nr. 22) Hva forstår du med Unntakshåndtering i PL / SQL?
Svar: Når det oppstår en feil i PL / SQL, heves unntaket. For å håndtere uønskede situasjoner der PL / SQL-skript avsluttes uventet, er det med andre ord inkludert en feilhåndteringskode i programmet. I PL / SQL plasseres all unntakshåndteringskode i en UNNTAKS-seksjon.
Det er tre typer unntak:
- Forhåndsdefinerte unntak: Vanlige feil med forhåndsdefinerte navn.
- Udefinerte unntak: Mindre vanlige feil uten forhåndsdefinerte navn.
- Brukerdefinerte unntak: Ikke forårsake kjøretidsfeil, men bryter forretningsregler.
Q # 23) Bruk noen forhåndsdefinerte unntak?
Svar:
Noen av de forhåndsdefinerte unntakene er:
- INGEN DATA FUNNET: Enkeltrad SELECT-setning der ingen data returneres.
- TOO_MANY_ROWS: Enkeltrad SELECT-setning der mer enn en rad returneres.
- INVALID_CURSOR: Ulovlig markøroperasjon skjedde.
- ZERO_DIVIDE: Forsøkt å dele med null.
Spørsmål nr. 24) Hva er PL / SQL-markør unntak?
Svar:
Unntakene knyttet til PL / SQL-markører er:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
Q # 25) Forklar forskjellen mellom markøren deklarert i prosedyrer og markører deklarert i pakkespesifikasjonen?
Svar: Markøren deklarert i prosedyren behandles som lokal og kan derfor ikke nås av andre prosedyrer.
Markøren deklarert i pakkespesifikasjonen blir behandlet som global og kan dermed nås ved andre prosedyrer.
Q # 26) Hva er INSTEAD OF triggers?
Svar: INSTEAD OF triggers er triggere som er skrevet spesielt for å endre visninger, som ikke kan endres direkte gjennom SQL DML-setninger.
Spørsmål nr. 27) Hva er uttrykk?
Svar: Uttrykk er representert med en sekvens av bokstaver og variabler som er atskilt med operatorer. I PL / SQL brukes operasjoner til å manipulere, sammenligne og beregne noen data. Et uttrykk er en sammensetning av 'Operators' og 'Operands'.
- Operander: Dette er et argument for operatørene. Operander kan være en variabel, funksjonsanrop eller konstant.
- Operatører: Disse spesifiserer handlingene som skal utføres på operatører. Eksempel: '+', '*', Etc.
Q # 28) Oppgi forskjellige typer uttrykk med eksemplet.
Svar: Uttrykk kan være som nevnt nedenfor:
- Numeriske eller aritmetiske uttrykk: Eksempel: 20 * 10+ 15
- Boolske uttrykk: Eksempel: ‘Spot’ SOM ‘sp% t’
- Strenguttrykk: Eksempel: LENGDE (‘NEW YORK’ || ‘NY’)
- Datouttrykk: Eksempel: SYSDATE> TO_DATE (’15 -NOV-16 ’,“ dd-mm-åå ”)
Q # 29) Skriv et program som viser bruken av WHILE-sløyfen for å beregne gjennomsnittet av brukerinntastede tall og inntasting av flere tall stoppes ved å angi nummer 0?
Svar
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END;
Spørsmål nr. 30) Hva forstår du av PL / SQL Records?
Svar: En PL / SQL-poster kan refereres til som en samling verdier eller si, en gruppe med flere informasjonsbiter, som hver er av enklere typer og kan relateres til hverandre som felt.
Det er tre typer poster som støttes i PL / SQL:
- Tabellbaserte poster
- Programmeringsbaserte poster
- Markørbaserte poster
Konklusjon
PL / SQL er veldig stort når det gjelder læring og anvendelse. Håper disse spørsmålene og svarene på intervjuet vil hjelpe deg å gå gjennom.
For å lære mer om PL SQL, les vår omfattende PL / SQL opplæringsserie .
Happy Learning !!
Anbefalt lesing
- Intervju Spørsmål og svar
- ETL Testing Intervju Spørsmål og svar
- Topp 30+ populære agurkintervju spørsmål og svar
- Topp 30 SAS intervju spørsmål og svar
- Topp spørsmål om Oracle-intervju: Oracle Basic, SQL, PL / SQL-spørsmål
- Topp 30 sikkerhetstestintervju og spørsmål
- 30+ spørsmål og svar fra toppscrumintervjuer (2021 LISTE)
- Topp 30 DBMS intervju spørsmål og svar