65 PL/SQL-interviewvragen en antwoorden (2025)

Hier zijn PL/SQL-interviewvragen en antwoorden voor zowel nieuwere als ervaren kandidaten om hun droombaan te krijgen.

 

PL/SQL-interviewvragen en antwoorden voor eerstejaarsstudenten

1) Wat is PL SQL?

Oracle PL/SQL is een uitbreiding van de SQL-taal die de gegevensmanipulatiekracht van SQL combineert met de verwerkingskracht van procedurele taal om superkrachtige SQL-query's te creëren. PL/SQL zorgt voor een naadloze verwerking van SQL-instructies door de beveiliging, draagbaarheid en robuustheid van de database te verbeteren.
PL/SQL staat voor ‘Procedural Language extensions to the Structured Query Language’.

👉 Gratis pdf-download: vragen en antwoorden over PL/SQL-interviews


2) Maak onderscheid tussen % ROWTYPE en TYPE RECORD.

% RIJTYPE wordt gebruikt wanneer een query een volledige rij van een tabel of weergave retourneert.
TYPE RECORD aan de andere kant wordt het gebruikt wanneer een query een kolom met verschillende tabellen of weergaven retourneert.

Bijv. TYPE r_emp is RECORD (sno smp.smpno%type,snaam smp snaam%type)

e_rec smp %RIJTYPE

Cursor c1 is select smpno,dept uit smp;

e_rec c1 %RIJTYPE


3) Leg het gebruik van de cursor uit.

Cursor is een benoemd privégebied in SQL van waaruit informatie toegankelijk is. Ze moeten elke rij afzonderlijk verwerken voor zoekopdrachten die meerdere rijen retourneren.


4) Toon code van een cursor voor lus.

Cursor declareert %ROWTYPE impliciet als lusindex. Vervolgens opent het een cursor, haalt rijen met waarden op uit de actieve set in velden van de record en sluit wanneer alle records zijn verwerkt.

Bijv.

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) Leg het gebruik van databasetrigger uit.

Een PL/SQL-programma-eenheid die aan een bepaalde databasetabel is gekoppeld, wordt een databasetrigger genoemd. Je gebruikt het voor :

1) Wijzigingen in auditgegevens.

2) Registreer gebeurtenissen transparant.

3) Zorg dat complexe bedrijfsregels worden nageleefd.

4) Onderhoud replicatabellen

5) Leid kolomwaarden af

6) Implementeer complexe beveiligingsautorisaties


6) Wat zijn de twee soorten uitzonderingen?

Het foutafhandelingsgedeelte van het PL/SQL-blok wordt Exception genoemd. Ze bestaan ​​uit twee typen: user_defined en vooraf gedefinieerd.


7) Toon enkele vooraf gedefinieerde uitzonderingen.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

GEEN DATA GEVONDEN

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

ONGELDIG NUMMER

INVALID_CURSOR

PROGRAM_ERROR

TIME-OUT _ON_RESOURCE

OPSLAG_ERROR

AANMELDING GEWEIGERD

VALUE_ERROR

enz.


8) Leg Raise_application_error uit.

Het is een procedure van pakket DBMS_STANDARD waarmee door de gebruiker gedefinieerde foutmeldingen kunnen worden afgegeven vanuit de databasetrigger of een opgeslagen subprogramma.


9) Laat zien hoe functies en procedures worden aangeroepen in een PL SQL-blok.

Functie wordt aangeroepen als onderdeel van een expressie.

total:=calculate_sal('b644')

Procedure wordt aangeroepen als een statement in PL / SQL.

calculate_bonus('b644');


10) Leg twee virtuele tabellen uit die beschikbaar zijn op het moment dat de databasetrigger wordt uitgevoerd.

Tabelkolommen worden OLD.column_name en NEW.column_name genoemd.

Voor INSERT-gerelateerde triggers zijn alleen NEW.column_name-waarden beschikbaar.

Voor DELETE-gerelateerde triggers zijn alleen OLD.column_name-waarden beschikbaar.

Voor UPDATE-gerelateerde triggers zijn beide tabelkolommen beschikbaar.


11) Wat zijn de regels die moeten worden toegepast op NULL's tijdens vergelijkingen?

1) NULL is nooit WAAR of ONWAAR

2) NULL kan niet gelijk of ongelijk zijn aan andere waarden

3) Als een waarde in een expressie NULL is, wordt de expressie zelf geëvalueerd naar NULL, behalve de samenvoegingsoperator (||)


12) Hoe wordt een proces van PL SQL samengesteld?

Het compilatieproces omvat processen voor syntaxiscontrole, binding en het genereren van p-codes.

Syntaxiscontrole controleert de PL SQL-codes op compilatiefouten. Wanneer alle fouten zijn gecorrigeerd, wordt een opslagadres toegewezen aan de variabelen die gegevens bevatten. Het heet Binden. P-code is een lijst met instructies voor de PL SQL-engine. P-code wordt opgeslagen in de database voor benoemde blokken en wordt gebruikt de volgende keer dat deze wordt uitgevoerd.


13) Maak onderscheid tussen syntaxis- en runtimefouten.

Een syntaxisfout kan eenvoudig worden gedetecteerd door een PL/SQL-compiler. Voor bijvoorbeeld onjuiste spelling.

Een runtimefout wordt afgehandeld met behulp van de sectie voor uitzonderingsafhandeling in een PL/SQL-blok. Bijvoorbeeld de SELECT INTO-instructie, die geen rijen retourneert.


14) Leg Commit, Rollback en Savepoint uit.

Voor een COMMIT-instructie geldt het volgende:

  • Andere gebruikers kunnen de gegevenswijzigingen zien die door de transactie zijn aangebracht.
  • De door de transactie verworven sloten worden vrijgegeven.
  • Het werk dat door de transactie wordt gedaan, wordt permanent.

Er wordt een ROLLBACK-instructie uitgegeven wanneer de transactie eindigt en het volgende is waar.

  • Het werk dat tijdens een transitie is gedaan, wordt ongedaan gemaakt alsof het nooit is uitgegeven.
  • Alle sloten die door een transactie zijn verkregen, worden vrijgegeven.

Het maakt al het werk dat de gebruiker in een transactie heeft gedaan, ongedaan. Met SAVEPOINT kan slechts een deel van de transactie ongedaan worden gemaakt.


15) Definieer impliciete en expliciete cursors.

Een cursor is standaard impliciet. De gebruiker kan de informatie in deze cursor niet controleren of verwerken.

Als een query meerdere rijen met gegevens retourneert, definieert het programma een expliciete cursor. Hierdoor kan de toepassing elke rij opeenvolgend verwerken terwijl de cursor deze retourneert.


16) Verklaar de muterende tabelfout.

Het treedt op wanneer een trigger een rij probeert bij te werken die momenteel wordt gebruikt. Het probleem wordt opgelost door weergaven of tijdelijke tabellen te gebruiken, dus de database selecteert de ene en werkt de andere bij.


17) Wanneer is een aangifteverklaring vereist?

DECLARE-instructie wordt gebruikt door anonieme PL SQL-blokken, zoals bij zelfstandige, niet-opgeslagen procedures. Als het wordt gebruikt, moet het op de eerste plaats komen in een zelfstandig bestand.


18) Hoeveel triggers kunnen op een tafel worden toegepast?

Er kunnen maximaal twaalf triggers op één tabel worden toegepast.


19) Wat is het belang van SQLCODE en SQLERRM?

SQLCODE retourneert de waarde van het aantal fouten voor de laatst aangetroffen fout, terwijl SQLERRM het bericht voor de laatste fout retourneert.


20) Als een cursor open is, hoe kunnen we deze dan vinden in een PL SQL-blok?

de %ISOPEN-cursorstatusvariabele kan worden gebruikt.


PL/SQL sollicitatievragen voor ervaren

21) Toon de twee PL/SQL-cursoruitzonderingen.

Cursor_Al_Open

Ongeldige_cursor


22) Welke operatoren worden gebruikt voor NULL?

NVL converteert NULL naar een andere opgegeven waarde.

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

IS NULL en IS NOT NULL kunnen worden gebruikt om specifiek te controleren of de waarde van een variabele NULL is of niet.


23) Heeft SQL*Plus ook een PL/SQL-engine?

Nee, SQL*Plus heeft geen ingebouwde PL/SQL-engine. Alle PL/SQL-code wordt dus rechtstreeks naar de database-engine verzonden. Het is veel efficiënter omdat elke verklaring niet afzonderlijk wordt verwijderd.


24) Welke pakketten zijn beschikbaar voor PL SQL-ontwikkelaars?

DBMS_ reeks pakketten, zoals DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.


25) Leg de drie basisonderdelen van een trigger uit.

  • Een triggerende verklaring of gebeurtenis.
  • Een beperking
  • Een actie

26) Wat zijn karakterfuncties?

INITCAP, UPPER, SUBSTR, LOWER en LENGTH zijn allemaal tekenfuncties. Groepsfuncties geven resultaten op basis van groepen rijen, in tegenstelling tot individuele rijen. Het zijn MAX, MIN, AVG, COUNT en SOM.


27) Leg TTITLE en BTITLE uit.

TTITLE- en BTITLE-opdrachten die de kop- en voetteksten van rapporten beheren.


28) Toon de cursorattributen van PL/SQL.

%ISOPEN: Controleert of de cursor open is of niet

%ROWCOUNT: Het aantal rijen dat is bijgewerkt, verwijderd of opgehaald.

%FOUND: Controleert of de cursor een rij heeft opgehaald. Dit is waar als rijen worden opgehaald

%NOT FOUND: Controleert of de cursor een rij heeft opgehaald. Het is waar als rijen niet worden opgehaald.


29) Wat is een snijpunt?

Intersect is het product van twee tabellen en bevat alleen overeenkomende rijen.


30) Wat zijn reeksen?

Sequences worden gebruikt om sequentienummers te genereren zonder overhead van vergrendeling. Het nadeel is dat het sequentienummer verloren gaat als de transactie wordt teruggedraaid.


31) Hoe zou u naar kolomwaarden verwijzen VOOR en NADAT u triggers hebt ingevoegd en verwijderd?

Met behulp van het trefwoord “new.column name” kunnen de triggers per nieuwe verzameling naar kolomwaarden verwijzen. Door het trefwoord “oude kolomnaam” te gebruiken, kunnen ze naar kolomwaarden verwijzen op oude verzameling.


32) Waarvoor worden de trefwoorden SYSDATE en USER gebruikt?

SYSDATE verwijst naar de huidige serversysteemdatum. Het is een pseudo-kolom. GEBRUIKER is ook een pseudokolom, maar verwijst naar de huidige gebruiker die bij de sessie is ingelogd. Ze worden gebruikt om veranderingen in de tabel te monitoren.


33) Hoe helpt ROWID om een ​​query sneller uit te voeren?

ROWID is het logische adres van een rij, het is geen fysieke kolom. Het bestaat uit het databloknummer, het bestandsnummer en het rijnummer in het datablok. De I/O-tijd wordt dus geminimaliseerd bij het ophalen van de rij, wat resulteert in een snellere query.


34) Waar worden databasekoppelingen voor gebruikt?

Er worden databasekoppelingen gemaakt om communicatie tot stand te brengen tussen verschillende databases of verschillende omgevingen zoals test-, ontwikkelings- en productieomgevingen. De databasekoppelingen zijn alleen-lezen om ook toegang te krijgen tot andere informatie.


35) Wat doet het ophalen van een cursor?

Als u een cursor ophaalt, wordt de Resultaatset rij voor rij weergegeven.


36) Wat doet het sluiten van een cursor?

Als u een cursor sluit, wordt het privé-SQL-gebied gewist en wordt de toewijzing van geheugen opgeheven


37) Leg het gebruik van Control File uit.

Het is een binair bestand. Het registreert de structuur van de database. Het bevat locaties van verschillende logbestanden, namen en tijdstempels. Ze kunnen op verschillende locaties worden opgeslagen om te helpen bij het ophalen van informatie als een bestand beschadigd raakt.


38) Leg de consistentie uit

Consistentie laat zien dat gegevens pas aan andere gebruikers worden getoond als de gegevens zijn vastgelegd, zodat de consistentie behouden blijft.


39) Verschil tussen anonieme blokken en subprogramma's.

Anonieme blokken zijn naamloze blokken die nergens worden opgeslagen terwijl subprogramma's worden gecompileerd en opgeslagen in de database. Ze worden tijdens runtime gecompileerd.


40) Verschil tussen DECODE en CASE.

DECODE- en CASE-instructies lijken erg op elkaar, maar CASE is een uitgebreide versie van DECODE. DECODE staat in plaats daarvan geen besluitvormingsverklaringen toe.

selecteer decode(totalsal=12000,'high',10000,'medium') als decode_tesr van smp waar smpno in (10,12,14,16);

Deze instructie retourneert een fout.

CASE wordt rechtstreeks gebruikt in PL SQL, maar DECODE wordt alleen gebruikt in PL SQL via SQL.


41) Leg autonome transactie uit.

Een autonome transactie is een onafhankelijke transactie van de hoofd- of moedertransactie. Het is niet genest als het door een andere transactie wordt gestart.

Er zijn verschillende situaties waarin autonome transacties kunnen worden gebruikt, zoals gebeurtenisregistratie en auditing.


42) Maak onderscheid tussen SGA en PGA.

SGA staat voor System Global Area, terwijl PGA staat voor Program of Process Global Area. PGA krijgt slechts 10% RAM-grootte toegewezen, maar SGA krijgt 40% RAM-grootte.


43) Wat is de locatie van vooraf gedefinieerde_functies.

Ze worden opgeslagen in het standaardpakket genaamd “Functies, Procedures en Pakketten”


44) Polymorfisme in PL SQL uitleggen.

Polymorfisme is een kenmerk van OOP. Het is de mogelijkheid om een ​​variabele, een object of een functie met meerdere vormen te creëren. PL/SQL ondersteunt polymorfisme in de vorm van overbelasting van programma-eenheden binnen een lidfunctie of pakket. Ondubbelzinnige logica moet worden vermeden tijdens overbelasting.


45) Wat zijn de toepassingen van MERGE?

MERGE wordt gebruikt om meerdere DML-instructies in één te combineren.

Syntaxis: samenvoegen in tabelnaam

gebruiken(vraag)

aan (toetredingsvoorwaarde)

als het dan niet overeenkomt

[invoegen/bijwerken/verwijderen]-opdracht

wanneer dan afgestemd

[invoegen/bijwerken/verwijderen]-opdracht


PL/SQL-interviewvragen voor meer dan 5 jaar ervaring

46) Kunnen er 2 query's tegelijkertijd worden uitgevoerd in een gedistribueerd databasesysteem?

Ja, ze kunnen gelijktijdig worden uitgevoerd. Eén query is altijd onafhankelijk van de tweede query in een gedistribueerd databasesysteem op basis van de 2-fase commit.


47) Leg Raise_application_error uit.

Het is een procedure van het pakket DBMS_STANDARD waarmee door de gebruiker gedefinieerde foutmeldingen kunnen worden afgegeven vanuit de databasetrigger of het opgeslagen subprogramma.


48) Waarvoor wordt de out-parameter gebruikt, ook al kan de return-instructie ook in pl/sql worden gebruikt?

Out-parameters staan ​​meer dan één waarde toe in het aanroepende programma. Out-parameter wordt niet aanbevolen in functies. Procedures kunnen worden gebruikt in plaats van functies als er meerdere waarden vereist zijn. Deze procedures worden dus gebruikt om Out-parameters uit te voeren.


49) Hoe zou je de datum naar het Juliaanse datumformaat converteren?

We kunnen de tekenreeks J-formaat gebruiken:

SQL > selecteer to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') als julian uit dual;

JULIAN


50) Leg SPOOL uit

Spool-opdracht kan de uitvoer van SQL-instructies in een bestand afdrukken.

spool/tmp/sql_outtxt

selecteer smp_name, smp_id uit smp waarbij dept='accounts';

afspoelen;


51) Vermeld waaruit het PL/SQL-pakket bestaat?

Een PL/SQL-pakket bestaat uit

  • PL/SQL-tabel en record TYPE-instructies
  • Procedures en functies
  • cursors
  • Variabelen (tabellen, scalairen, records, enz.) en constanten
  • Uitzonderingsnamen en pragma's voor het relateren van een foutnummer aan een uitzondering
  • cursors

52) Noem wat de voordelen zijn van PL/SQL-pakketten?

Het biedt verschillende voordelen, zoals

  • Gedwongen informatie verbergen: Het biedt de vrijheid om te kiezen of gegevens privé of openbaar worden gehouden
  • Top-down ontwerp: U kunt de interface ontwerpen voor de code die in het pakket verborgen is voordat u de modules zelf daadwerkelijk implementeert
  • Objectpersistentie: Objecten die in een pakketspecificatie zijn gedeclareerd, gedragen zich als globale gegevens voor alle PL/SQL-objecten in de applicatie. U kunt het pakket in de ene module wijzigen en vervolgens naar die wijzigingen verwijzen naar een andere module
  • Objectgeoriënteerd ontwerp: Het pakket geeft ontwikkelaars een sterke grip op hoe de modules en datastructuren in het pakket gebruikt kunnen worden
  • Transactie-integriteit garanderen: Het biedt een niveau van transactie-integriteit
  • Prestatieverbetering: De RDBMS volgt automatisch de geldigheid van alle programmaobjecten die in de database zijn opgeslagen en verbetert de prestaties van pakketten.

53) Noem wat de verschillende methoden zijn om de PL/SQL-code te traceren?

Het traceren van code is een cruciale techniek om de codeprestaties tijdens de runtime te meten. Verschillende methoden voor tracering omvatten

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION en DBMS_MONITOR
  • trcsess en tkproof hulpprogramma's

54) Wat doet de hiërarchische profiler?

De hiërarchische profiler zou de oproepen die in PL/SQL worden gedaan, kunnen profileren, naast het opvullen van de kloof tussen de mazen en de verwachtingen van prestatietracering. De efficiëntie van de hiërarchische profiler omvat

  • Aparte rapportage voor SQL en PL/SQL-tijdverbruik
  • Rapporteert het aantal afzonderlijke oproepen van subprogramma's die in de PL/SQL zijn gedaan, en de tijd die is besteed aan elke oproep van subprogramma's
  • Meerdere interactieve analyserapporten in HTML-indeling met behulp van het opdrachtregelprogramma
  • Effectiever dan conventionele profiler en andere traceringshulpprogramma's

55) Vermeld wat u met PLV-bericht kunt doen?

Met het PLV-bericht kunt u dat doen

  • Wijs een individueel tekstbericht toe aan de opgegeven rij in de PL/SQL-tabel
  • Het haalt de berichttekst op nummer op
  • Het vervangt automatisch uw eigen berichten voor standaard Oracle foutmeldingen met beperkende schakelaar
  • Batchgewijs berichtnummers en tekst uit een databasetabel rechtstreeks laden PLV msg PL/SQL-tabel

56) Vermeld wat het PLV (PL/Vision)-pakket biedt?

  • Nul-vervangingswaarde
  • Set beweringroutines
  • Diverse nutsvoorzieningen
  • Set constanten die in PL Vision wordt gebruikt
  • Vooraf gedefinieerde gegevenstypen

57) Noem wat het gebruik van PLVprs en PLVprsps is?

  • PLVprs: Het is een extensie voor het parseren van tekenreeksen voor PL/SQL, en het is het laagste niveau van functionaliteit voor het parseren van tekenreeksen
  • PLVprsps: Het is het hoogste niveau pakket om PL/SQL broncode te parsen in aparte atomics. Het vertrouwt op andere parsing pakketten om werk gedaan te krijgen.

58) Leg vooraf uit hoe u een bestand naar de bestandsinhoud en het bestand naar de PL/SQL-tabel kunt kopiëren PL/SQL?

Met een enkele programma-oproep – “fkopieerprocedure”, u kunt de volledige inhoud van het ene bestand naar een ander bestand kopiëren. Om de inhoud van een bestand rechtstreeks naar een PL/SQL-tabel te kopiëren, kunt u het programma “bestand2pstab”.


59) Leg uit hoe de afhandeling van uitzonderingen vooraf gebeurt in PL/SQL?

Voor uitzonderingsafhandeling PL/SQL biedt een effectieve plug-in PLVexc. PLVexc ondersteunt vier verschillende uitzonderingsafhandelingsacties.

  • Ga door met de verwerking
  • Opnemen en dan doorgaan
  • Stop de verwerking
  • Neem op en stop de verwerking

Voor de uitzonderingen die zich opnieuw voordoen, kunt u de RAISE-instructie gebruiken.


60) Noem welk probleem je kunt tegenkomen bij het schrijven van loginformatie naar een databasetabel in PL/SQL?

Bij het schrijven van loginformatie naar een databasetabel, is het probleem dat u tegenkomt dat de informatie alleen beschikbaar is zodra de nieuwe rijen zijn vastgelegd in de database. Dit kan een probleem zijn, aangezien PLVlog doorgaans wordt ingezet om fouten bij te houden en in veel van dergelijke gevallen zou de huidige transactie mislukken of anderszins een rollback nodig hebben.


61) Noem wat de functie is die wordt gebruikt om een ​​PL/SQL-tabellogboek over te dragen naar een databasetabel?

Om een ​​PL/SQL-tabellogboek over te dragen, wordt een databaselogtabelfunctie gebruikt “PROCEDURE ps2db” is gebruikt.


62) Wanneer moet u een standaard “rollback to” savepoint van PLVlog gebruiken?

Het standaard “rollback to” savepoint van PLVlog wordt gebruikt wanneer de gebruiker de rollback-activiteit heeft ingeschakeld en geen alternatief savepoint heeft opgegeven in de aanroep naar put_line. Het standaard opslagpunt wordt geïnitialiseerd op de constante c none.


63) Waarom wordt PLVtab beschouwd als de gemakkelijkste manier om toegang te krijgen tot de PL/SQL-tabel?

De PL/SQL-tabel komt het dichtst in de buurt van arrays in PL/SQL, en om toegang te krijgen tot deze tabel moet u eerst een tabeltype declareren, en daarna moet u de PL/SQL-tabel zelf declareren. Maar door PLVtab te gebruiken, kunt u voorkomen dat u uw eigen PL/SQL-tabeltype definieert en wordt de toegang tot PL/SQL-gegevenstabellen eenvoudig gemaakt.


64) Noem wat u met PLVtab kunt doen als u de inhoud van PL/SQL-tabellen toont?

Met PLVtab kunt u de volgende dingen doen wanneer u de inhoud van PL/SQL-tabellen weergeeft

  • Geef een koptekst voor de tabel weer of onderdruk deze
  • De rijnummers voor de tabelwaarden weergeven of onderdrukken
  • Toon een voorvoegsel vóór elke rij van de tabel

65) Leg uit hoe u uw bericht kunt opslaan of in een tabel kunt plaatsen?

Om het bericht in een tabel op te slaan, kunt u dit op twee manieren doen

  • Laad individuele berichten met oproepen naar de add_text procedures
  • Laad sets berichten uit een databasetabel met de load_from_dbms procedures

66) Noem wat het gebruik is van de functie “moduleprocedure” in PL/SQL?

De “moduleprocedure” maakt het mogelijk om met één procedureaanroep alle coderegels in een bepaalde programma-eenheid om te zetten. Er zijn drie argumenten voor modules

  • module_in
  • cor_in
  • Laatste_module_in

67) Noem wat PLVcmt en PLVrb doen in PL/SQL?

PL/Vision biedt twee pakketten waarmee u de transactieverwerking in de PL/SQL-applicatie kunt beheren. Het is PLVcmt en PLVrb.

  • PLVcmt: Het PLVcmt-pakket omvat logica en complexiteit voor het verwerken van commits
  • PLVrb: Het biedt een programmatische interface voor het terugdraaien van activiteiten in PL/SQL

Deze interviewvragen zullen ook helpen bij je viva (oralen)