65 PL/SQL-intervjuspørsmål og svar (2026)
PL/SQL-intervjuspørsmål og svar for ferskinger
1) Hva er PL SQL?
Oracle PL/SQL er en utvidelse av SQL-språket som kombinerer datamanipulasjonskraften til SQL med prosessorkraften til prosedyrespråk for å lage superkraftige SQL-spørringer. PL/SQL sikrer sømløs behandling av SQL-setninger ved å forbedre sikkerheten, portabiliteten og robustheten til databasen.
PL/SQL står for "Procedural Language extensions to the Structured Query Language."
👉 Gratis PDF-nedlasting: PL/SQL-intervjuspørsmål og svar
2) Skille mellom % ROWTYPE og TYPE RECORD.
% RADTYPE brukes når en spørring returnerer en hel rad i en tabell eller visning.
TYPE REKORD på den annen side, brukes når en spørring returnerer kolonne med forskjellige tabeller eller visninger.
F.eks. TYPE r_emp er TA OPP (sno smp.smpno%type,sname smp sname %type)
e_rec smp %RADTYPE
Markør c1 er velg smpno,dept fra smp;
e_rec c1 %RADTYPE
3) Forklar bruken av markøren.
Markør er et navngitt privat område i SQL hvorfra informasjon kan nås. De er pålagt å behandle hver rad individuelt for spørringer som returnerer flere rader.
4) Vis kode for en markør for løkke.
Markøren erklærer %ROWTYPE som loopindeks implisitt. Den åpner deretter en markør, henter rader med verdier fra det aktive settet i feltene i posten og lukkes når alle postene er behandlet.
Eg.
FOR smp_rec IN C1 LOOP totalsal=totalsal+smp_recsal; ENDLOOP;
5) Forklar bruken av databaseutløser.
En PL/SQL-programenhet knyttet til en bestemt databasetabell kalles en databaseutløser. Den brukes til:
1) Revisjonsdataendringer.
2) Logg hendelser transparent.
3) Håndheve komplekse forretningsregler.
4) Oppretthold replikatabeller
5) Utled kolonneverdier
6) Implementer komplekse sikkerhetsautorisasjoner
6) Hva er de to typene unntak.
Feilhåndtering av en del av PL/SQL-blokken kalles unntak. De har to typer: brukerdefinert og forhåndsdefinert.
7) Vis noen forhåndsdefinerte unntak.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
NO_DATA_FOUND
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
INVALID_NUMBER
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_NEKT
VALUE_ERROR
og så videre
8) Forklar Raise_application_error.
Det er en prosedyre for pakken DBMS_STANDARD som tillater utstedelse av brukerdefinerte feilmeldinger fra databaseutløser eller lagret underprogram.
9) Vis hvordan funksjoner og prosedyrer kalles i en PL SQL-blokk.
Funksjon kalles som en del av et uttrykk.
total:=calculate_sal('b644')
Prosedyre kalles som en uttalelse i PL / SQL.
calculate_bonus('b644');
10) Forklar to virtuelle tabeller som er tilgjengelige på tidspunktet for kjøring av databaseutløser.
Tabellkolonner refereres til som OLD.column_name og NEW.column_name.
For INSERT-relaterte utløsere er NEW.column_name-verdier bare tilgjengelige.
For DELETE-relaterte utløsere er OLD.column_name-verdier bare tilgjengelige.
For OPPDATERING-relaterte utløsere er begge tabellkolonnene tilgjengelige.
11) Hva er reglene som skal brukes på NULL-er når du sammenligner?
1) NULL er aldri SANN eller USANN
2) NULL kan ikke være lik eller ulik andre verdier
3) Hvis en verdi i et uttrykk er NULL, evalueres selve uttrykket til NULL bortsett fra sammenkoblingsoperatoren (||)
12) Hvordan er en prosess med PL SQL kompilert?
Kompileringsprosessen inkluderer syntakssjekk, bindings- og p-kodegenereringsprosesser.
Syntakskontroll sjekker PL SQL-kodene for kompileringsfeil. Når alle feil er rettet, tildeles en lagringsadresse til variablene som inneholder data. Det kalles Binding. P-kode er en liste over instruksjoner for PL SQL-motoren. P-kode lagres i databasen for navngitte blokker og brukes neste gang den kjøres.
13) Skill mellom syntaks- og kjøretidsfeil.
En syntaksfeil kan lett oppdages av en PL/SQL-kompilator. For eksempel feil stavemåte.
En kjøretidsfeil håndteres ved hjelp av unntakshåndteringsseksjonen i en PL/SQL-blokk. For eksempel, SELECT INTO-setningen, som ikke returnerer noen rader.
14) Forklar Commit, Rollback og Savepoint.
For en COMMIT-uttalelse er følgende sant:
- Andre brukere kan se dataendringene gjort av transaksjonen.
- Låsene ervervet av transaksjonen frigjøres.
- Arbeidet som utføres av transaksjonen blir permanent.
En ROLLBACK-erklæring utstedes når transaksjonen avsluttes, og følgende er sant.
- Arbeidet som gjøres i en overgang blir angret som om det aldri ble utstedt.
- Alle låser anskaffet ved transaksjon frigjøres.
Det angrer alt arbeidet som er utført av brukeren i en transaksjon. Med SAVEPOINT kan bare deler av transaksjonen angres.
15) Definer implisitte og eksplisitte markører.
En markør er implisitt som standard. Brukeren kan ikke kontrollere eller behandle informasjonen i denne markøren.
Hvis en spørring returnerer flere rader med data, definerer programmet en eksplisitt markør. Dette gjør at applikasjonen kan behandle hver rad sekvensielt når markøren returnerer den.
16) Forklar mutasjonstabellfeil.
Det oppstår når en utløser prøver å oppdatere en rad som den bruker for øyeblikket. Det fikses ved å bruke visninger eller midlertidige tabeller, så databasen velger en og oppdaterer den andre.
17) Når kreves det en erklæring?
DECLARE-setningen brukes av anonyme PL SQL-blokker, for eksempel med frittstående, ikke-lagrede prosedyrer. Hvis den brukes, må den komme først i en frittstående fil.
18) Hvor mange triggere kan brukes på en tabell?
Maksimalt 12 utløsere kan brukes på ett bord.
19) Hva er viktigheten av SQLCODE og SQLERRM?
SQLCODE returnerer verdien av antall feil for den siste feilen, mens SQLERRM returnerer meldingen for den siste feilen.
20) Hvis en markør er åpen, hvordan kan vi finne i en PL SQL-blokk?
%ISOPEN markørstatusvariabelen kan brukes.
PL/SQL-intervjuspørsmål for erfarne
21) Vis de to PL/SQL-markørunntakene.
Cursor_Already_Open
Invaid_cursor
22) Hvilke operatører håndterer NULL?
NVL konverterer NULL til en annen spesifisert verdi.
var:=NVL(var2,'Hi');
IS NULL og IS NOT NULL kan brukes til å sjekke spesifikt om verdien til en variabel er NULL eller ikke.
23) Har SQL*Plus også en PL/SQL-motor?
Nei, SQL*Plus har ikke en PL/SQL-motor innebygd. Dermed sendes all PL/SQL-kode direkte til databasemotoren. Det er mye mer effektivt siden hvert utsagn ikke fjernes individuelt.
24) Hvilke pakker er tilgjengelige for PL SQL-utviklere?
DBMS_ serie med pakker, for eksempel DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Forklar 3 grunnleggende deler av en trigger.
- En utløsende uttalelse eller hendelse.
- En begrensning
- Et tiltak
26) Hva er tegnfunksjoner?
INITCAP, UPPER, SUBSTR, LOWER og LENGTH er alle tegnfunksjoner. Gruppefunksjoner gir resultater basert på grupper av rader, i motsetning til individuelle rader. De er MAX, MIN, AVG, COUNT og SUM.
27) Forklar TTITLE og BTITLE.
TTITLE- og BTITLE-kommandoer som kontrollerer rapporthoder og bunntekster.
28) Vis markørattributtene til PL/SQL.
%ISOPEN: Sjekker om markøren er åpen eller ikke
%ROWCOUNT: Antall rader som er oppdatert, slettet eller hentet.
%FOUND: Sjekker om markøren har hentet en rad. Det er sant hvis rader hentes
%NOT FOUND: Sjekker om markøren har hentet en rad. Det er sant hvis rader ikke hentes.
29) Hva er et kryss?
Intersect er produktet av to tabeller og viser bare samsvarende rader.
30) Hva er sekvenser?
Sekvenser brukes til å generere sekvensnummer uten overhead av låsing. Ulempen er at sekvensnummeret går tapt hvis transaksjonen rulles tilbake.
31) Hvordan vil du referere til kolonneverdier FØR og ETTER du har satt inn og slettet triggere?
Ved å bruke nøkkelordet «new.column name» kan utløsere referere til kolonneverdier etter ny samling. Ved å bruke nøkkelordet "gammelt.kolonnenavn", kan de referere til kolonneverdier etter gammel samling.
32) Hva er bruken av SYSDATE- og USER-nøkkelord?
SYSDATE refererer til gjeldende serversystemdato. Det er en pseudospalte. BRUKER er også en pseudokolonne, men refererer til gjeldende bruker som er logget på økten. De brukes til å overvåke endringer som skjer i tabellen.
33) Hvordan hjelper ROWID med å kjøre en spørring raskere?
ROWID er den logiske adressen til en rad, det er ikke en fysisk kolonne. Den består av datablokknummer, filnummer og radnummer i datablokken. Dermed blir I/O-tiden minimert ved å hente raden, og resulterer i en raskere spørring.
34) Hva brukes databaselenker til?
Databasekoblinger opprettes for å danne kommunikasjon mellom ulike databaser, eller ulike miljøer som test, utvikling og produksjon. Databasekoblingene er skrivebeskyttet for å få tilgang til annen informasjon også.
35) Hva gjør det å hente en markør?
Henting av en markør viser resultatsett rad for rad.
36) Hva gjør det å lukke en markør?
Hvis du lukker en markør, tømmes det private SQL-området, i tillegg til at minnet fjernes
37) Forklar bruken av kontrollfil.
Det er en binær fil. Den registrerer strukturen til databasen. Den inkluderer plassering av flere loggfiler, navn og tidsstempler. De kan lagres på forskjellige steder for å hjelpe til med å hente informasjon hvis en fil blir ødelagt.
38) Forklar konsistens
Konsistens viser at data ikke vil bli reflektert til andre brukere før dataene er commit, slik at konsistensen opprettholdes.
39) Forskjell mellom anonyme blokker og underprogrammer.
Anonyme blokker er navnløse blokker som ikke lagres noe sted mens underprogrammer kompileres og lagres i databasen. De kompileres under kjøring.
40) Forskjell mellom DECODE og CASE.
DECODE og CASE-setninger er veldig like, men CASE er utvidet versjon av DECODE. DECODE tillater ikke beslutningsuttalelser i stedet for.
velg decode(totalsal=12000,'high',10000,'medium') som decode_tesr fra smp hvor smpno in (10,12,14,16);
Denne setningen returnerer en feil.
CASE brukes direkte i PL SQL, men DECODE brukes kun i PL SQL gjennom SQL.
41) Forklar autonom transaksjon.
En autonom transaksjon er en uavhengig transaksjon av hoved- eller mortransaksjonen. Den er ikke nestet hvis den startes av en annen transaksjon.
Det er flere situasjoner for å bruke autonome transaksjoner som hendelseslogging og revisjon.
42) Skille mellom SGA og PGA.
SGA står for System Global Area mens PGA står for Program eller Process Global Area. PGA er bare tildelt 10 % RAM-størrelse, men SGA er gitt 40 % RAM-størrelse.
43) Hva er plasseringen av Pre_defined_functions.
De er lagret i standardpakken kalt "Funksjoner, prosedyrer og pakker"
44) Forklar polymorfisme i PL SQL.
Polymorfisme er et trekk ved OOP. Det er muligheten til å lage en variabel, et objekt eller funksjon med flere former. PL/SQL støtter polymorfisme i form av programenhetsoverbelastning inne i en medlemsfunksjon eller pakke. Entydig logikk må unngås mens overbelastning utføres.
45) Hva er bruken av MERGE?
MERGE brukes til å kombinere flere DML-setninger til én.
Syntaks: slå sammen til tabellnavn
bruker (spørring)
på (sammenføyningstilstand)
når ikke matchet da
[sett inn/oppdater/slett] kommando
når matchet da
[sett inn/oppdater/slett] kommando
PL/SQL-intervjuspørsmål for 5+ års erfaring
46) Kan 2 spørringer utføres samtidig i et distribuert databasesystem?
Ja, de kan utføres samtidig. En spørring er alltid uavhengig av den andre spørringen i et distribuert databasesystem basert på 2-fase commit.
47) Forklar Raise_application_error.
Det er en prosedyre for pakken DBMS_STANDARD som tillater utsendelse av brukerdefinerte feilmeldinger fra databaseutløseren eller lagret underprogram.
48) Hva er out-parameteren som brukes for selv om retursetning også kan brukes i pl/sql?
Ut-parametere tillater mer enn én verdi i det anropende programmet. Ut-parameter anbefales ikke i funksjoner. Prosedyrer kan brukes i stedet for funksjoner hvis flere verdier kreves. Derfor brukes disse prosedyrene til å utføre Out-parametere.
49) Hvordan ville du konvertert dato til juliansk datoformat?
Vi kan bruke J-formatstrengen:
SQL > velg to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') som julian fra dual;
Julian
50) Forklar SPOOL
Spool-kommandoen kan skrive ut utdataene fra sql-setninger i en fil.
spool/tmp/sql_outtxt
velg smp_name, smp_id fra smp hvor dept='accounts';
spole av;
51) Nevn hva PL/SQL-pakken består av?
En PL/SQL-pakke består av
- PL/SQL-tabell og post TYPE-setninger
- Prosedyrer og funksjoner
- pekere
- Variabler (tabeller, skalarer, poster, etc.) og konstanter
- Unntaksnavn og pragmaer for å relatere et feilnummer med unntak
- pekere
52) Nevn hva er fordelene med PL/SQL-pakker?
Det gir flere fordeler som
- Tvungen informasjonsskjuling: Det gir friheten til å velge om data skal holdes private eller offentlige
- Top-down design: Du kan designe grensesnittet til koden som er skjult i pakken før du faktisk implementerte selve modulene
- Objektutholdenhet: Objekter deklarert i en pakkespesifikasjon oppfører seg som globale data for alle PL/SQL-objekter i applikasjonen. Du kan endre pakken i én modul og deretter referere disse endringene til en annen modul
- Objektorientert design: Pakken gir utviklere et godt grep om hvordan modulene og datastrukturene inne i pakken kan brukes
- Garanterer transaksjonsintegritet: Det gir et nivå av transaksjonsintegritet
- Ytelsesforbedring: Ocuco RDBMS automatisk trackontrollerer gyldigheten til alle programobjekter som er lagret i databasen og forbedrer ytelsen til pakker.
53) Nevn hva som er forskjellige metoder for å tracPL/SQL-koden?
TracÅ lage kode er en viktig teknikk for å måle kodens ytelse under kjøretid. Ulike metoder for tracinkluderer
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION og DBMS_MONITOR
- trcsess og tkproof verktøy
54) Nevn hva gjør den hierarkiske profileren?
Den hierarkiske profileren kunne profilere kallene som ble gjort i PL/SQL, i tillegg til å fylle gapet mellom smutthullene og forventningene til ytelse. tracing. Effektiviteten til den hierarkiske profileren inkluderer
- Distinkt rapportering for SQL og PL/SQL tidsforbruk
- Rapporterer antall distinkte underprogramanrop gjort i PL/SQL, og tiden brukt med hvert underprogramkall
- Flere interaktive analyserapporter i HTML-format ved å bruke kommandolinjeverktøyet
- Mer effektiv enn konvensjonell profiler og andre tracing forsyningsselskaper
55) Nevn hva PLV msg lar deg gjøre?
PLV-meldingen lar deg
- Tilordne individuell tekstmelding til spesifisert rad i PL/SQL-tabellen
- Den henter meldingsteksten etter nummer
- Den erstatter automatisk dine egne meldinger med standard Oracle feilmeldinger med begrense bryteren
- Batch-last meldingsnumre og tekst fra en databasetabell direkte PLV msg PL/SQL-tabell
56) Nevn hva PLV (PL/Vision)-pakken tilbyr?
- Null erstatningsverdi
- Sett med påstandsrutiner
- Diverse verktøy
- Sett med konstanter brukt gjennom PL-synet
- Forhåndsdefinerte datatyper
57) Nevn hva er bruken av PLVprs og PLVprsps?
- PLVprs: Det er en utvidelse for strengparsing for PL/SQL, og det er det laveste nivået av funksjonalitet for strengparsing
- PLVprsps: Det er pakken på høyeste nivå for å analysere PL/SQL-kildekode til separate atomer. Den er avhengig av andre analyseringspakker for å få arbeidet gjort.
58) Forklar hvordan du kan kopiere en fil til filinnhold og fil til PL/SQL-tabell på forhånd PL/SQL?
Med et enkelt programanrop – "fcopy prosedyre", du kan kopiere hele innholdet i en fil til en annen fil. Mens du kopierer innholdet i en fil direkte til en PL/SQL-tabell, kan du bruke programmet "file2pstab".
59) Forklar hvordan unntakshåndtering gjøres på forhånd PL/SQL?
Til unntakshåndtering PL/SQL gir en effektiv plugin PLVexc. PLVexc støtter fire forskjellige unntakshåndteringshandlinger.
- Fortsett behandlingen
- Ta opp og fortsett
- Stopp behandlingen
- Ta opp og stopp deretter behandlingen
For de unntakene som gjentar seg kan du bruke RAISE-setningen.
60) Nevn hvilket problem man kan møte når man skriver logginformasjon til en databasetabell i PL/SQL?
Når du skriver logginformasjon til en databasetabell, er problemet du møter at informasjonen bare er tilgjengelig når de nye radene er lagt inn i databasen. Dette kan være et problem siden slike PLVlog vanligvis distribueres til track-feil, og i mange slike tilfeller ville den gjeldende transaksjonen mislykkes eller på annen måte trenge en tilbakestilling.
61) Nevn hva er funksjonen som brukes til å overføre en PL/SQL-tabelllogg til en databasetabell?
For å overføre en PL/SQL-tabelllogg en databaseloggtabellfunksjon "PROSEDYRE ps2db" benyttes.
62) Når du må bruke et standard "rull tilbake til" lagringspunkt for PLVlog?
Standard "rollback to" lagringspunkt for PLVlog brukes når brukerne har slått på rollback-aktiviteten og ikke har oppgitt et alternativt lagringspunkt i kallet til put_line. Standard lagringspunkt initialiseres til c none-konstanten.
63) Hvorfor regnes PLVtab som den enkleste måten å få tilgang til PL/SQL-tabellen på?
PL/SQL-tabellen er nærmest arrays i PL/SQL, og for å få tilgang til denne tabellen må du først deklarere en tabelltype, og deretter må du deklarere selve PL/SQL-tabellen. Men ved å bruke PLVtab kan du unngå å definere din egen PL/SQL-tabelltype og gjøre PL/SQL-datatabelltilgangen enkel.
64) Nevn hva PLVtab lar deg gjøre når du viser innholdet i PL/SQL-tabeller?
PLVtab lar deg gjøre følgende ting når du viser innholdet i PL/SQL-tabeller
- Vis eller undertrykk en overskrift for tabellen
- Vis eller undertrykk radnumrene for tabellverdiene
- Vis et prefiks foran hver rad i tabellen
65) Forklar hvordan du kan lagre eller plassere meldingen i en tabell?
For å lagre melding i en tabell, kan du gjøre det på to måter
- Last inn individuelle meldinger med anrop til
add_textprosedyren - Last inn sett med meldinger fra en databasetabell med
load_from_dbmsprosedyren
66) Nevn hva er bruken av funksjon "modulprosedyre" i PL/SQL?
"Modulprosedyren" gjør det mulig å konvertere alle kodelinjene i en bestemt programenhet med ett prosedyrekall. Det er tre argumenter for moduler
- module_in
- cor_in
- Siste_modul_inn
67) Nevn hva PLVcmt og PLVrb gjør i PL/SQL?
PL/Vision tilbyr to pakker som hjelper deg med å administrere transaksjonsbehandling i PL/SQL-applikasjonen. Det er PLVcmt og PLVrb.
- PLVcmt: PLVcmt-pakken omslutter logikk og kompleksitet for å håndtere commit-behandling
- PLVrb: Det gir et programmatisk grensesnitt for å rulle tilbake aktivitet i PL/SQL
Disse intervjuspørsmålene vil også hjelpe i din viva(orals)
