65 PL/SQL-interviewspørgsmål og svar (2026)
PL/SQL-interviewspørgsmål og svar til nybegyndere
1) Hvad er PL SQL?
Oracle PL/SQL er en udvidelse af SQL-sprog, der kombinerer datamanipulationskraften i SQL med proceskraften fra proceduresprog for at skabe superkraftige SQL-forespørgsler. PL/SQL sikrer problemfri behandling af SQL-sætninger ved at forbedre sikkerheden, portabiliteten og robustheden af databasen.
PL/SQL står for "Procedural Language extensions to the Structured Query Language."
👉 Gratis PDF-download: PL/SQL-interviewspørgsmål og svar
2) Skel mellem % ROWTYPE og TYPE RECORD.
% RÆKKETYPE bruges, når en forespørgsel returnerer en hel række af en tabel eller visning.
TYPE REKORD på den anden side bruges, når en forespørgsel returnerer kolonne med forskellige tabeller eller visninger.
F.eks. TYPE r_emp er OPTAGE (sno smp.smpno%type,sname smp sname %type)
e_rec smp %ROWTYPE
Markøren c1 er vælg smpno, dept from smp;
e_rec c1 %ROWTYPE
3) Forklar brugen af markøren.
Cursor er et navngivet privat område i SQL, hvorfra der kan tilgås information. De skal behandle hver række individuelt for forespørgsler, der returnerer flere rækker.
4) Vis kode for en markør for loop.
Markøren erklærer %ROWTYPE som sløjfeindeks implicit. Den åbner derefter en markør, henter rækker af værdier fra det aktive sæt i felter i posten og lukker, når alle poster er behandlet.
F.eks.
FOR smp_rec IN C1 LOOP totalsal=totalsal+smp_recsal; ENDLOOP;
5) Forklar brugen af databasetrigger.
En PL/SQL-programenhed forbundet med en bestemt databasetabel kaldes en databasetrigger. Det bruges til:
1) Revisionsdataændringer.
2) Log hændelser gennemsigtigt.
3) Håndhæve komplekse forretningsregler.
4) Vedligehold replika-tabeller
5) Udled kolonneværdier
6) Implementer komplekse sikkerhedsgodkendelser
6) Hvad er de to typer undtagelser.
Fejlhåndtering af en del af PL/SQL-blokken kaldes Undtagelse. De har to typer: brugerdefineret og foruddefineret.
7) Vis nogle foruddefinerede undtagelser.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
INGEN DATA FUNDET
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
INVALID_NUMBER
INVALID_CURSOR
PROGRAM_FEJL
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
etc.
8) Forklar Raise_application_error.
Det er en procedure i pakken DBMS_STANDARD, der tillader udstedelse af brugerdefinerede fejlmeddelelser fra databasetrigger eller lagret underprogram.
9) Vis hvordan funktioner og procedurer kaldes i en PL SQL-blok.
Funktion kaldes som en del af et udtryk.
total:=calculate_sal('b644')
Proceduren kaldes som en erklæring i PL / SQL.
calculate_bonus('b644');
10) Forklar to virtuelle tabeller, der er tilgængelige på tidspunktet for udførelse af databaseudløser.
Tabelkolonner omtales som OLD.column_name og NEW.column_name.
For INSERT-relaterede triggere er NEW.column_name-værdier kun tilgængelige.
For DELETE-relaterede triggere er OLD.column_name-værdier kun tilgængelige.
For OPDATERING-relaterede udløsere er begge tabelkolonner tilgængelige.
11) Hvad er de regler, der skal anvendes på NULL'er, mens der foretages sammenligninger?
1) NULL er aldrig SAND eller FALSK
2) NULL kan ikke være lig med eller ulig med andre værdier
3) Hvis en værdi i et udtryk er NULL, evalueres selve udtrykket til NULL undtagen sammenkædningsoperatoren (||)
12) Hvordan er en proces med PL SQL kompileret?
Kompileringsprocessen omfatter syntakskontrol, binde- og p-kodegenereringsprocesser.
Syntakskontrol kontrollerer PL SQL-koderne for kompileringsfejl. Når alle fejl er rettet, tildeles en lageradresse til de variable, der indeholder data. Det kaldes Binding. P-kode er en liste over instruktioner til PL SQL-motoren. P-kode gemmes i databasen for navngivne blokke og bruges næste gang den udføres.
13) skelne mellem syntaks og runtime fejl.
En syntaksfejl kan let opdages af en PL/SQL-kompiler. For eksempel forkert stavning.
En runtime fejl håndteres ved hjælp af undtagelseshåndteringssektionen i en PL/SQL-blok. For eksempel SELECT INTO-sætning, som ikke returnerer nogen rækker.
14) Forklar Commit, Rollback og Savepoint.
For en COMMIT-erklæring er følgende sandt:
- Andre brugere kan se dataændringerne foretaget af transaktionen.
- Låsene erhvervet ved transaktionen frigives.
- Det arbejde, der udføres af transaktionen, bliver permanent.
En ROLLBACK-erklæring udsendes, når transaktionen slutter, og følgende er sandt.
- Arbejdet udført i en overgang fortrydes, som om det aldrig blev udstedt.
- Alle låse erhvervet ved transaktion frigives.
Det fortryder alt det arbejde, som brugeren har udført i en transaktion. Med SAVEPOINT kan kun en del af transaktionen fortrydes.
15) Definer implicitte og eksplicitte markører.
En markør er som standard implicit. Brugeren kan ikke kontrollere eller behandle oplysningerne i denne markør.
Hvis en forespørgsel returnerer flere rækker af data, definerer programmet en eksplicit markør. Dette gør det muligt for applikationen at behandle hver række sekventielt, efterhånden som markøren returnerer den.
16) Forklar mutationstabelfejl.
Det opstår, når en trigger forsøger at opdatere en række, som den bruger i øjeblikket. Det rettes ved at bruge visninger eller midlertidige tabeller, så databasen vælger den ene og opdaterer den anden.
17) Hvornår er en erklæring påkrævet?
DECLARE-sætning bruges af anonyme PL SQL-blokke, såsom med stand alone, ikke-lagrede procedurer. Hvis det bruges, skal det komme først i en enkeltstående fil.
18) Hvor mange triggere kan anvendes på en tabel?
Der kan maksimalt anvendes 12 udløsere på én tabel.
19) Hvad er vigtigheden af SQLCODE og SQLERRM?
SQLCODE returnerer værdien af antallet af fejl for den sidst stødte fejl, mens SQLERRM returnerer meddelelsen for den sidste fejl.
20) Hvis en markør er åben, hvordan kan vi så finde i en PL SQL-blok?
%ISOPEN cursorstatusvariablen kan bruges.
PL/SQL interviewspørgsmål til erfarne
21) Vis de to PL/SQL-markørundtagelser.
Cursor_Already_Open
Invaid_cursor
22) Hvilke operatører beskæftiger sig med NULL?
NVL konverterer NULL til en anden specificeret værdi.
var:=NVL(var2,'Hi');
IS NULL og IS NOT NULL kan bruges til at kontrollere specifikt, om værdien af en variabel er NULL eller ej.
23) Har SQL*Plus også en PL/SQL Engine?
Nej, SQL*Plus har ikke en PL/SQL Engine indlejret i sig. Således sendes al PL/SQL-kode direkte til databasemotoren. Det er meget mere effektivt, da hvert udsagn ikke fjernes individuelt.
24) Hvilke pakker er tilgængelige for PL SQL-udviklere?
DBMS_ serie af pakker, såsom DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Forklar 3 grundlæggende dele af en trigger.
- En udløsende erklæring eller begivenhed.
- En begrænsning
- En handling
26) Hvad er karakterfunktioner?
INITCAP, UPPER, SUBSTR, LOWER og LENGTH er alle karakterfunktioner. Gruppefunktioner giver resultater baseret på grupper af rækker i modsætning til individuelle rækker. De er MAX, MIN, AVG, COUNT og SUM.
27) Forklar TTITLE og BTITLE.
TTITLE- og BTITLE-kommandoer, der styrer rapporthoveder og sidefødder.
28) Vis markørattributterne for PL/SQL.
%ISOPEN: Kontrollerer, om markøren er åben eller ej
%ROWCOUNT: Antallet af rækker, der er opdateret, slettet eller hentet.
%FOUND: Kontrollerer, om markøren har hentet en række. Det er sandt, hvis rækker hentes
%NOT FOUND: Kontrollerer, om markøren har hentet en række. Det er sandt, hvis rækker ikke hentes.
29) Hvad er et skæringspunkt?
Skæring er produktet af to tabeller, og det viser kun matchende rækker.
30) Hvad er sekvenser?
Sekvenser bruges til at generere sekvensnumre uden overhead af låsning. Dens ulempe er, at sekvensnummeret går tabt, hvis transaktionen rulles tilbage.
31) Hvordan vil du referere til kolonneværdier FØR og EFTER du har indsat og slettet triggere?
Ved at bruge søgeordet "new.column name" kan triggerne referere til kolonneværdier efter ny samling. Ved at bruge søgeordet "old.column name" kan de referere til kolonneværdier efter gammel samling.
32) Hvad er brugen af SYSDATE og USER søgeord?
SYSDATE refererer til den aktuelle serversystemdato. Det er en pseudo-søjle. USER er også en pseudo-kolonne, men henviser til den aktuelle bruger, der er logget på sessionen. De bruges til at overvåge ændringer, der sker i tabellen.
33) Hvordan hjælper ROWID med at køre en forespørgsel hurtigere?
ROWID er den logiske adresse på en række, det er ikke en fysisk kolonne. Den består af databloknummer, filnummer og rækkenummer i datablokken. Således bliver I/O-tiden minimeret ved at hente rækken og resulterer i en hurtigere forespørgsel.
34) Hvad bruges databaselinks til?
Databaselinks oprettes for at danne kommunikation mellem forskellige databaser eller forskellige miljøer som test, udvikling og produktion. Databaselinkene er skrivebeskyttede for også at få adgang til andre oplysninger.
35) Hvad gør det at hente en markør?
Hentning af en markør viser Resultatsæt række for række.
36) Hvad gør det at lukke en markør?
Lukning af en markør rydder det private SQL-område og deallokerer hukommelse
37) Forklar brugen af kontrolfil.
Det er en binær fil. Det registrerer strukturen af databasen. Det inkluderer placeringer af flere logfiler, navne og tidsstempler. De kan gemmes forskellige steder for at hjælpe med at hente oplysninger, hvis en fil bliver ødelagt.
38) Forklar konsistens
Konsistens viser, at data ikke vil blive reflekteret til andre brugere, før dataene er commit, så konsistensen opretholdes.
39) Forskel mellem anonyme blokke og underprogrammer.
Anonyme blokke er unavngivne blokke, der ikke gemmes nogen steder, mens underprogrammer kompileres og gemmes i databasen. De kompileres på runtime.
40) Forskel mellem DECODE og CASE.
DECODE- og CASE-udsagn er meget ens, men CASE er en udvidet version af DECODE. DECODE tillader ikke beslutningstagning i stedet for.
vælg decode(totalsal=12000,'high',10000,'medium') som decode_tesr fra smp hvor smpno in (10,12,14,16);
Denne erklæring returnerer en fejl.
CASE bruges direkte i PL SQL, men DECODE bruges kun i PL SQL gennem SQL.
41) Forklar autonom transaktion.
En autonom transaktion er en uafhængig transaktion af hoved- eller modertransaktionen. Den er ikke indlejret, hvis den startes af en anden transaktion.
Der er flere situationer til at bruge autonome transaktioner som hændelseslogning og revision.
42) Skill mellem SGA og PGA.
SGA står for System Global Area, mens PGA står for Program eller Process Global Area. PGA tildeles kun 10% RAM-størrelse, men SGA tildeles 40% RAM-størrelse.
43) Hvad er placeringen af Pre_defined_functions.
De er gemt i standardpakken kaldet "Funktioner, procedurer og pakker"
44) Forklar polymorfi i PL SQL.
Polymorfi er et træk ved OOP. Det er evnen til at skabe en variabel, et objekt eller en funktion med flere former. PL/SQL understøtter polymorfi i form af programenhedsoverbelastning inde i en medlemsfunktion eller pakke.. Entydig logik skal undgås, mens overbelastning udføres.
45) Hvad er brugen af MERGE?
MERGE bruges til at kombinere flere DML-sætninger til én.
Syntaks: flet ind i tabelnavn
bruger (forespørgsel)
på (sammenføjningstilstand)
når det ikke matches så
kommandoen [indsæt/opdater/slet]
når matchet så
kommandoen [indsæt/opdater/slet]
PL/SQL interviewspørgsmål for 5+ års erfaring
46) Kan 2 forespørgsler udføres samtidigt i et distribueret databasesystem?
Ja, de kan udføres samtidigt. En forespørgsel er altid uafhængig af den anden forespørgsel i et distribueret databasesystem baseret på 2-fase commit.
47) Forklar Raise_application_error.
Det er en procedure i pakken DBMS_STANDARD, der tillader udsendelse af brugerdefinerede fejlmeddelelser fra databasetriggeren eller det lagrede underprogram.
48) Hvad er out-parameteren, der bruges til, selvom retursætning også kan bruges i pl/sql?
Out-parametre tillader mere end én værdi i det kaldende program. Ud parameter anbefales ikke i funktioner. Procedurer kan bruges i stedet for funktioner, hvis der kræves flere værdier. Disse procedurer bruges således til at udføre Out-parametre.
49) Hvordan ville du konvertere dato til juliansk datoformat?
Vi kan bruge J-formatstrengen:
SQL > vælg to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') som julian fra dual;
JULIAN
50) Forklar SPOOL
Spool-kommando kan udskrive output af sql-sætninger i en fil.
spool/tmp/sql_outtxt
vælg smp_name, smp_id fra smp hvor dept='accounts';
spole af;
51) Nævn hvad PL/SQL-pakken består af?
En PL/SQL-pakke består af
- PL/SQL tabel og record TYPE sætninger
- Procedurer og funktioner
- Markører
- Variabler (tabeller, skalarer, poster osv.) og konstanter
- Undtagelsesnavne og pragmaer til at relatere et fejlnummer med en undtagelse
- Markører
52) Nævn, hvad er fordelene ved PL/SQL-pakker?
Det giver flere fordele som f.eks
- Tvungen informationsskjul: Det giver frihed til at vælge, om data skal holdes private eller offentlige
- Top-down design: Du kan designe grænsefladen til den kode, der er gemt i pakken, før du faktisk implementerede selve modulerne
- Objektvedholdenhed: Objekter, der er erklæret i en pakkespecifikation, opfører sig som globale data for alle PL/SQL-objekter i applikationen. Du kan ændre pakken i ét modul og derefter henvise disse ændringer til et andet modul
- Objektorienteret design: Pakken giver udviklere et stærkt hold over, hvordan modulerne og datastrukturerne inde i pakken kan bruges
- Garanterer transaktionens integritet: Det giver et niveau af transaktionsintegritet
- Performance forbedring: RDBMS automatisk trackontrollerer gyldigheden af alle programobjekter, der er gemt i databasen, og forbedrer pakkernes ydeevne.
53) Nævn forskellige metoder til at tracPL/SQL-koden?
TracKodeindspilning er en afgørende teknik til at måle kodens ydeevne under kørsel. Forskellige metoder til tracinkluderer
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION og DBMS_MONITOR
- trcsess og tkproof hjælpeprogrammer
54) Nævn, hvad gør den hierarkiske profiler?
Den hierarkiske profiler kunne profilere de kald, der blev foretaget i PL/SQL, udover at udfylde hullet mellem smuthullerne og forventningerne til ydeevne. tracing. Effektiviteten af den hierarkiske profiler inkluderer
- Særskilt rapportering for SQL og PL/SQL tidsforbrug
- Rapporterer antallet af distinkte underprogramkald foretaget i PL/SQL, og den tid brugt med hvert underprogramkald
- Flere interaktive analyserapporter i HTML-format ved hjælp af kommandolinjeværktøjet
- Mere effektiv end konventionel profiler og andre tracforsyningsvirksomheder
55) Nævn, hvad giver PLV msg dig mulighed for?
PLV-meddelelsen giver dig mulighed for
- Tildel individuel tekstbesked til specificeret række i PL/SQL-tabellen
- Den henter beskedteksten efter nummer
- Det erstatter automatisk dine egne beskeder med standard Oracle fejlmeddelelser med begrænsning
- Batchindlæs beskednumre og tekst fra en databasetabel direkte PLV msg PL/SQL-tabel
56) Nævn, hvad er PLV (PL/Vision)-pakkens tilbud?
- Nul substitutionsværdi
- Sæt af påstandsrutiner
- Diverse hjælpemidler
- Sæt af konstanter brugt i hele PL-synet
- Foruddefinerede datatyper
57) Nævn hvad er brugen af PLVprs og PLVprsps?
- PLVprs: Det er en udvidelse til strengparsing til PL/SQL, og det er det laveste niveau af strengparsingfunktionalitet
- PLVprsps: Det er pakken på højeste niveau til at parse PL/SQL-kildekode til separate atomer. Den er afhængig af andre parsing-pakker for at få arbejdet udført.
58) Forklar hvordan du kan kopiere en fil til filindhold og fil til PL/SQL-tabel på forhånd PL/SQL?
Med et enkelt programkald – "fcopy procedure", du kan kopiere hele indholdet af en fil til en anden fil. Mens du kopierer indholdet af en fil direkte til en PL/SQL-tabel, kan du bruge programmet "file2pstab".
59) Forklar hvordan undtagelseshåndtering foregår på forhånd PL/SQL?
Til undtagelseshåndtering PL/SQL giver et effektivt plugin PLVexc. PLVexc understøtter fire forskellige undtagelseshåndteringshandlinger.
- Fortsæt behandlingen
- Optag og fortsæt derefter
- Stop behandlingen
- Optag og stop derefter behandlingen
For de undtagelser, der gentager sig, kan du bruge RAISE-sætningen.
60) Nævn hvilket problem man kan støde på, når man skriver logoplysninger til en databasetabel i PL/SQL?
Når du skriver logoplysninger til en databasetabel, er problemet, at oplysningerne kun er tilgængelige, når de nye rækker er committet til databasen. Dette kan være et problem, da en sådan PLVlog normalt implementeres til track fejl, og i mange sådanne tilfælde ville den aktuelle transaktion mislykkes eller på anden måde kræve en tilbagerulning.
61) Nævn hvad er den funktion, der bruges til at overføre en PL/SQL-tabellog til en databasetabel?
For at overføre en PL/SQL-tabellog en databaselogtabelfunktion "PROCEDURE ps2db" anvendes.
62) Når du skal bruge et standard "rollback to" savepoint af PLVlog?
Standard "rollback to" savepoint for PLVlog bruges, når brugerne har slået rollback-aktiviteten til og ikke har angivet et alternativt savepoint i opkaldet til put_line. Standardlagringspunktet initialiseres til c none-konstanten.
63) Hvorfor anses PLVtab for at være den nemmeste måde at få adgang til PL/SQL-tabellen på?
PL/SQL-tabellen er tættest på arrays i PL/SQL, og for at få adgang til denne tabel skal du først deklarere en tabeltype, og derefter skal du erklære selve PL/SQL-tabellen. Men ved at bruge PLVtab kan du undgå at definere din egen PL/SQL-tabeltype og gøre PL/SQL-datatabeladgang let.
64) Nævn, hvad gør PLVtab dig i stand til at gøre, når du viser indholdet af PL/SQL-tabeller?
PLVtab giver dig mulighed for at gøre følgende, når du viser indholdet af PL/SQL-tabeller
- Vis eller undertrykk en overskrift for tabellen
- Vis eller undertryk rækkenumrene for tabelværdierne
- Vis et præfiks før hver række i tabellen
65) Forklar hvordan du kan gemme eller placere din besked i en tabel?
For at gemme besked i en tabel kan du gøre det på to måder
- Indlæs individuelle beskeder med opkald til
add_textprocedure - Indlæs sæt meddelelser fra en databasetabel med
load_from_dbmsprocedure
66) Nævn hvad er brugen af funktionen "modulprocedure" i PL/SQL?
"Modulproceduren" gør det muligt at konvertere alle kodelinjerne i en bestemt programenhed med ét procedurekald. Der er tre argumenter for moduler
- module_in
- cor_in
- Sidste_modul_ind
67) Nævn, hvad PLVcmt og PLVrb gør i PL/SQL?
PL/Vision tilbyder to pakker, der hjælper dig med at administrere transaktionsbehandling i PL/SQL-applikationen. Det er PLVcmt og PLVrb.
- PLVcmt: PLVcmt-pakken omslutter logik og kompleksitet til at håndtere commit-behandling
- PLVrb: Det giver en programmatisk grænseflade til at rulle tilbage aktivitet i PL/SQL
Disse interviewspørgsmål vil også hjælpe i din viva(orals)
