65 PL/SQL-intervjufrågor och svar (2025)

Här är PL/SQL-intervjufrågor och svar för fräschare såväl som erfarna kandidater att få sitt drömjobb.

 

PL/SQL-intervjufrågor och svar för nybörjare

1) Vad är PL SQL?

Oracle PL/SQL är en förlängning av SQL-språket som kombinerar datamanipuleringskraften hos SQL med processorkraften hos procedurspråk för att skapa superkraftiga SQL-frågor. PL/SQL säkerställer sömlös bearbetning av SQL-satser genom att förbättra säkerheten, portabiliteten och robustheten i databasen.
PL/SQL står för "Procedural Language extensions to the Structured Query Language."

👉 Gratis PDF-nedladdning: PL/SQL-intervjufrågor och svar


2) Gör skillnad på % ROWTYPE och TYPE RECORD.

% ROWTYPE används när en fråga returnerar en hel rad i en tabell eller vy.
TYP REKORD å andra sidan används när en fråga returnerar kolumn med olika tabeller eller vyer.

T.ex. TYPE r_emp är SPELA IN (sno smp.smpno%type,sname smp sname %type)

e_rec smp %RADTYP

Markör c1 är select smpno,dept from smp;

e_rec c1 %RADTYP


3) Förklara användningen av markören.

Markören är ett namngivet privat område i SQL från vilket information kan nås. De måste behandla varje rad individuellt för frågor som returnerar flera rader.


4) Visa kod för en markör för loop.

Markören deklarerar %ROWTYPE som loopindex implicit. Den öppnar sedan en markör, hämtar rader med värden från den aktiva uppsättningen i postens fält och stängs när alla poster har bearbetats.

T.ex..

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) Förklara användningen av databasutlösare.

En PL/SQL-programenhet associerad med en viss databastabell kallas en databasutlösare. Den används för:

1) Ändringar av revisionsdata.

2) Logga händelser transparent.

3) Genomför komplexa affärsregler.

4) Underhåll replikatabeller

5) Härled kolumnvärden

6) Implementera komplexa säkerhetsbehörigheter


6) Vilka är de två typerna av undantag.

Felhantering av en del av PL/SQL-blocket kallas undantag. De har två typer: användardefinierad och fördefinierad.


7) Visa några fördefinierade undantag.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

INGEN INFORMATION HITTAD

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

OGILTIGT NUMMER

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

och så vidare


8) Förklara Raise_application_error.

Det är en procedur för paketet DBMS_STANDARD som tillåter utfärdande av användardefinierade felmeddelanden från databasutlösaren eller lagrat underprogram.


9) Visa hur funktioner och procedurer anropas i ett PL SQL-block.

Funktion kallas som en del av ett uttryck.

total:=calculate_sal('b644')

Förfarandet kallas som ett uttalande i PL / SQL.

calculate_bonus('b644');


10) Förklara två virtuella tabeller som är tillgängliga vid tidpunkten för databastriggerkörning.

Tabellkolumner kallas OLD.column_name och NEW.column_name.

För INSERT-relaterade utlösare är NEW.column_name-värdena endast tillgängliga.

För DELETE-relaterade utlösare är OLD.column_name-värdena endast tillgängliga.

För UPDATE-relaterade utlösare är båda tabellkolumnerna tillgängliga.


11) Vilka regler ska tillämpas på NULLs när man gör jämförelser?

1) NULL är aldrig SANT eller FALSKT

2) NULL kan inte vara lika med eller olikvärdigt med andra värden

3) Om ett värde i ett uttryck är NULL, utvärderas själva uttrycket till NULL förutom sammanlänkningsoperatorn (||)


12) Hur kompileras en process av PL SQL?

Kompileringsprocessen inkluderar syntaxkontroll, bindnings- och p-kodgenereringsprocesser.

Syntaxkontroll kontrollerar PL SQL-koderna för kompileringsfel. När alla fel har rättats tilldelas en lagringsadress till variablerna som innehåller data. Det kallas för bindning. P-kod är en lista med instruktioner för PL SQL-motorn. P-koden lagras i databasen för namngivna block och används nästa gång den exekveras.


13) Gör skillnad på syntax- och körtidsfel.

Ett syntaxfel kan lätt upptäckas av en PL/SQL-kompilator. Till exempel felaktig stavning.

Ett körtidsfel hanteras med hjälp av undantagshanteringssektionen i en PL/SQL-block. Till exempel, SELECT INTO-satsen, som inte returnerar några rader.


14) Förklara Commit, Rollback och Savepoint.

För ett COMMIT-uttalande gäller följande:

  • Andra användare kan se dataändringarna som gjorts av transaktionen.
  • Låsen som förvärvats genom transaktionen släpps.
  • Det arbete som utförs av transaktionen blir permanent.

Ett ROLLBACK-uttalande utfärdas när transaktionen avslutas, och följande är sant.

  • Arbetet som utförs i en övergång görs ogjort som om det aldrig hade utfärdats.
  • Alla lås som förvärvats genom transaktion släpps.

Det ångrar allt arbete som gjorts av användaren i en transaktion. Med SAVEPOINT kan endast en del av transaktionen ångras.


15) Definiera implicita och explicita markörer.

En markör är implicit som standard. Användaren kan inte kontrollera eller bearbeta informationen i den här markören.

Om en fråga returnerar flera rader med data, definierar programmet en explicit markör. Detta gör att applikationen kan bearbeta varje rad sekventiellt när markören returnerar den.


16) Förklara mutationstabellfel.

Det inträffar när en utlösare försöker uppdatera en rad som den för närvarande använder. Det fixas genom att använda vyer eller tillfälliga tabeller, så databasen väljer en och uppdaterar den andra.


17) När krävs en deklarationsförklaring?

DECLARE-satsen används av anonyma PL SQL-block som med fristående, icke-lagrade procedurer. Om den används måste den komma först i en fristående fil.


18) Hur många triggers kan användas på en tabell?

Högst 12 utlösare kan tillämpas på en tabell.


19) Vad är betydelsen av SQLCODE och SQLERRM?

SQLCODE returnerar värdet på antalet fel för det senast påträffade felet medan SQLERRM returnerar meddelandet för det senaste felet.


20) Om en markör är öppen, hur kan vi hitta i ett PL SQL-block?

markörstatusvariabeln %ISOPEN kan användas.


PL/SQL-intervjufrågor för erfarna

21) Visa de två PL/SQL-markörundantagen.

Cursor_Redan_Open

Invaid_cursor


22) Vilka operatörer hanterar NULL?

NVL konverterar NULL till ett annat specificerat värde.

var:=NVL(var2,'Hi');

IS NULL och IS NOT NULL kan användas för att specifikt kontrollera om värdet på en variabel är NULL eller inte.


23) Har SQL*Plus också en PL/SQL-motor?

Nej, SQL*Plus har ingen PL/SQL-motor inbäddad. Alltså skickas all PL/SQL-kod direkt till databasmotorn. Det är mycket mer effektivt eftersom varje påstående inte tas bort individuellt.


24) Vilka paket är tillgängliga för PL SQL-utvecklare?

DBMS_ paketserier, såsom DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.


25) Förklara 3 grundläggande delar av en trigger.

  • Ett utlösande uttalande eller händelse.
  • En begränsning
  • En handling

26) Vad är karaktärsfunktioner?

INITCAP, UPPER, SUBSTR, LOWER och LENGTH är alla teckenfunktioner. Gruppfunktioner ger resultat baserat på grupper av rader, i motsats till enskilda rader. De är MAX, MIN, AVG, COUNT och SUMMA.


27) Förklara TTITLE och BTITLE.

TTITLE- och BTITLE-kommandon som styr rapporthuvuden och sidfötter.


28) Visa markörattributen för PL/SQL.

%ISOPEN: Kontrollerar om markören är öppen eller inte

%ROWCOUNT: Antalet rader som uppdateras, raderas eller hämtas.

%FOUND: Kontrollerar om markören har hämtat någon rad. Det är sant om rader hämtas

%NOT FOUND: Kontrollerar om markören har hämtat någon rad. Det är sant om rader inte hämtas.


29) Vad är en skärning?

Skärning är produkten av två tabeller och den listar endast matchande rader.


30) Vad är sekvenser?

Sekvenser används för att generera sekvensnummer utan en overhead av låsning. Dess nackdel är att sekvensnumret går förlorat om transaktionen rullas tillbaka.


31) Hur skulle du referera till kolumnvärden INNAN och EFTER att du har infogat och tagit bort triggers?

Med hjälp av nyckelordet "new.column name" kan triggers referera till kolumnvärden efter ny samling. Genom att använda nyckelordet "old.column name" kan de referera till kolumnvärden efter gammal samling.


32) Vad är användningen av SYSDATE och USER nyckelord?

SYSDATE hänvisar till det aktuella serversystemets datum. Det är en pseudokolonn. USER är också en pseudo-kolumn men hänvisar till den aktuella användaren som är inloggad på sessionen. De används för att övervaka förändringar som sker i tabellen.


33) Hur hjälper ROWID att köra en fråga snabbare?

ROWID är den logiska adressen för en rad, det är inte en fysisk kolumn. Den består av datablocknummer, filnummer och radnummer i datablocket. Således minimeras I/O-tiden vid hämtning av raden och resulterar i en snabbare fråga.


34) Vad används databaslänkar till?

Databaslänkar skapas för att bilda kommunikation mellan olika databaser, eller olika miljöer som test, utveckling och produktion. Databaslänkarna är skrivskyddade för att även komma åt annan information.


35) Vad gör att hämta en markör?

Att hämta en markör läser Resultatuppsättning rad för rad.


36) Vad gör att stänga en markör?

Om du stänger en markör rensas det privata SQL-området samt avallokerar minne


37) Förklara användningen av Control File.

Det är en binär fil. Den registrerar databasens struktur. Den innehåller platser för flera loggfiler, namn och tidsstämplar. De kan lagras på olika platser för att hjälpa till att hämta information om en fil blir skadad.


38) Förklara konsistens

Konsistens visar att data inte kommer att reflekteras till andra användare förrän data är commit, så att konsistensen upprätthålls.


39) Skiljer mellan anonyma block och underprogram.

Anonyma block är namnlösa block som inte lagras någonstans medan underprogram kompileras och lagras i databasen. De kompileras under körning.


40) Skiljer sig mellan DECODE och CASE.

DECODE- och CASE-satser är mycket lika, men CASE är en utökad version av DECODE. DECODE tillåter inte beslutsfattande uttalanden i dess ställe.

välj decode(totalsal=12000,'hög',10000,'medium') som decode_tesr från smp där smpno in (10,12,14,16);

Detta uttalande returnerar ett fel.

CASE används direkt i PL SQL, men DECODE används i PL SQL endast genom SQL.


41) Förklara autonom transaktion.

En autonom transaktion är en oberoende transaktion av huvud- eller modertransaktionen. Den är inte kapslad om den startas av en annan transaktion.

Det finns flera situationer för att använda autonoma transaktioner som händelseloggning och revision.


42) Gör skillnad på SGA och PGA.

SGA står för System Global Area medan PGA står för Program eller Process Global Area. PGA tilldelas endast 10 % RAM-storlek, men SGA ges 40 % RAM-storlek.


43) Vilken är platsen för Pre_defined_functions.

De lagras i standardpaketet som heter "Funktioner, procedurer och paket"


44) Förklara polymorfism i PL SQL.

Polymorfism är en egenskap hos OOP. Det är förmågan att skapa en variabel, ett objekt eller en funktion med flera former. PL/SQL stöder polymorfism i form av programenhetsöverbelastning inuti en medlemsfunktion eller paket.. Entydig logik måste undvikas medan överbelastning görs.


45) Vad är användningen av MERGE?

MERGE används för att kombinera flera DML-satser till en.

Syntax : slå samman till tabellnamn

använder (fråga)

på (anslutningsvillkor)

när det inte matchas då

kommandot [infoga/uppdatera/ta bort]

när matchade då

kommandot [infoga/uppdatera/ta bort]


PL/SQL-intervjufrågor för 5+ års erfarenhet

46) Kan 2 frågor exekveras samtidigt i ett distribuerat databassystem?

Ja, de kan utföras samtidigt. En fråga är alltid oberoende av den andra frågan i ett distribuerat databassystem baserat på 2 phase commit.


47) Förklara Raise_application_error.

Det är en procedur för paketet DBMS_STANDARD som tillåter att ett användardefinierat felmeddelande skickas från databasutlösaren eller det lagrade underprogrammet.


48) Vilken out-parameter används för även om return-satsen också kan användas i pl/sql?

Out-parametrar tillåter mer än ett värde i det anropande programmet. Out-parameter rekommenderas inte i funktioner. Procedurer kan användas istället för funktioner om flera värden krävs. Således används dessa procedurer för att exekvera Out-parametrar.


49) Hur skulle du konvertera datum till julianskt datumformat?

Vi kan använda J-formatsträngen:

SQL > välj to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') som julian från dual;

JULIANSK


50) Förklara SPOOL

Spool-kommandot kan skriva ut utdata från SQL-satser i en fil.

spool/tmp/sql_outtxt

välj smp_name, smp_id från smp där dept='accounts';

spola av;


51) Nämn vad PL/SQL-paketet består av?

Ett PL/SQL-paket består av

  • PL/SQL-tabell och post TYPE-satser
  • Procedurer och funktioner
  • markörer
  • Variabler (tabeller, skalärer, poster, etc.) och konstanter
  • Undantagsnamn och pragmer för att relatera ett felnummer med ett undantag
  • markörer

52) Nämn vilka är fördelarna med PL/SQL-paket?

Det ger flera fördelar som

  • Påtvingad informationsdöljning: Det ger friheten att välja om data ska hållas privat eller offentlig
  • Top-down design: Du kan designa gränssnittet till koden som är gömd i paketet innan du faktiskt implementerade själva modulerna
  • Objektbeständighet: Objekt som deklareras i en paketspecifikation beter sig som en global data för alla PL/SQL-objekt i applikationen. Du kan ändra paketet i en modul och sedan hänvisa dessa ändringar till en annan modul
  • Objektorienterad design: Paketet ger utvecklare ett starkt grepp om hur modulerna och datastrukturerna inuti paketet kan användas
  • Garanterar transaktionens integritet: Det ger en nivå av transaktionsintegritet
  • Prestandaförbättring: Din RDBMS spårar automatiskt giltigheten av alla programobjekt lagrade i databasen och förbättrar paketens prestanda.

53) Nämn vilka olika metoder finns för att spåra PL/SQL-koden?

Spårningskod är en avgörande teknik för att mäta kodens prestanda under körningen. Olika metoder för spårning inkluderar

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION och DBMS_MONITOR
  • trcsess och tkproof verktyg

54) Nämn vad gör den hierarkiska profileraren?

Den hierarkiska profileraren skulle kunna profilera de samtal som görs i PL/SQL, förutom att fylla gapet mellan kryphålen och förväntningarna på prestandaspårning. Effektiviteterna hos den hierarkiska profileraren inkluderar

  • Distinkt rapportering för SQL och PL/SQL tidsförbrukning
  • Rapporterar antalet distinkta underprogramanrop som gjorts i PL/SQL, och den tid som spenderats med varje underprogramanrop
  • Flera interaktiva analysrapporter i HTML-format med hjälp av kommandoradsverktyget
  • Effektivare än konventionella profiler och andra spårningsverktyg

55) Nämn vad gör PLV msg tillåter dig att göra?

PLV-meddelandet gör att du kan

  • Tilldela individuella textmeddelanden till angiven rad i PL/SQL-tabellen
  • Den hämtar meddelandetexten efter nummer
  • Det ersätter automatiskt dina egna meddelanden med standard Oracle felmeddelanden med begränsa växel
  • Batchladda meddelandenummer och text från en databastabell direkt PLV msg PL/SQL-tabell

56) Nämn vad erbjuder PLV (PL/Vision)-paketet?

  • Noll substitutionsvärde
  • Uppsättning av påstående rutiner
  • Diverse verktyg
  • Uppsättning konstanter som används genom hela PL-seendet
  • Fördefinierade datatyper

57) Nämn vad är användningen av PLVprs och PLVprsps?

  • PLVprs: Det är en tillägg för strängtolkning för PL/SQL, och det är den lägsta nivån av stränganalysfunktionalitet
  • PLVprsps: Det är paketet på högsta nivå för att analysera PL/SQL-källkod till separata atomer. Den förlitar sig på andra analyspaket för att få jobbet gjort.

58) Förklara hur du kan kopiera en fil till filinnehåll och fil till PL/SQL-tabell i förväg PL/SQL?

Med ett enda programsamtal – "fcopy procedure", du kan kopiera hela innehållet i en fil till en annan fil. För att kopiera innehållet i en fil direkt till en PL/SQL-tabell kan du använda programmet "file2pstab".


59) Förklara hur undantagshantering görs i förväg PL/SQL?

För undantagshantering PL/SQL tillhandahåller en effektiv plugin PLVexc. PLVexc stöder fyra olika undantagshanteringsåtgärder.

  • Fortsätt bearbetningen
  • Spela in och fortsätt sedan
  • Stoppa bearbetningen
  • Spela in och stoppa sedan bearbetningen

För de undantag som återkommer kan du använda RAISE-satsen.


60) Nämn vilket problem man kan möta när man skriver logginformation till en databastabell i PL/SQL?

När du skriver logginformation till en databastabell är problemet att informationen bara är tillgänglig när de nya raderna har anslutits till databasen. Detta kan vara ett problem eftersom sådan PLVlog vanligtvis används för att spåra fel och i många sådana fall skulle den aktuella transaktionen misslyckas eller på annat sätt behöva en återställning.


61) Nämn vilken funktion som används för att överföra en PL/SQL-tabelllogg till en databastabell?

För att överföra en PL/SQL-tabell logga en databasloggtabellfunktion "PROCEDUR ps2db" är använd.


62) När du måste använda en standard "återställningspunkt" för PLVlog?

Standard "återställningspunkt" för PLVlog används när användarna har aktiverat återställningsaktiviteten och inte har angett en alternativ räddningspunkt i anropet till put_line. Standardsparpunkten initieras till c none-konstanten.


63) Varför anses PLVtab vara det enklaste sättet att komma åt PL/SQL-tabellen?

PL/SQL-tabellen är närmast arrayer i PL/SQL, och för att komma åt denna tabell måste du först deklarera en tabelltyp, och sedan måste du deklarera själva PL/SQL-tabellen. Men genom att använda PLVtab kan du undvika att definiera din egen PL/SQL-tabelltyp och göra åtkomst till PL/SQL-datatabeller enkel.


64) Nämn vad gör PLVtab det möjligt för dig att göra när du visar innehållet i PL/SQL-tabeller?

PLVtab låter dig göra följande saker när du visar innehållet i PL/SQL-tabeller

  • Visa eller dämpa en rubrik för tabellen
  • Visa eller dämpa radnumren för tabellvärdena
  • Visa ett prefix före varje rad i tabellen

65) Förklara hur du kan spara eller placera ditt meddelande i en tabell?

För att spara meddelande i en tabell kan du göra det på två sätt

  • Ladda enskilda meddelanden med samtal till add_text förfaranden
  • Ladda uppsättningar av meddelanden från en databastabell med load_from_dbms förfaranden

66) Nämn vad är användningen av funktionen "modulprocedur" i PL/SQL?

"Modulproceduren" gör det möjligt att konvertera alla kodrader i en bestämd programenhet med ett proceduranrop. Det finns tre argument för moduler

  • module_in
  • cor_in
  • Last_module_in

67) Nämn vad PLVcmt och PLVrb gör i PL/SQL?

PL/Vision erbjuder två paket som hjälper dig att hantera transaktionsbearbetning i PL/SQL-applikationen. Det är PLVcmt och PLVrb.

  • PLVcmt: PLVcmt-paketet omsluter logik och komplexitet för att hantera commit-bearbetning
  • PLVrb: Det tillhandahåller ett programmatiskt gränssnitt för att återställa aktivitet i PL/SQL

Dessa intervjufrågor kommer också att hjälpa dig i din viva (orals)