65 Întrebări și răspunsuri la interviu PL/SQL (2025)

Iată întrebări și răspunsuri la interviu PL/SQL pentru candidații mai proaspeți, precum și cu experiență, pentru a obține jobul visat.

 

Întrebări și răspunsuri la interviu PL/SQL pentru cei proaspăți

1) Ce este PL SQL?

Oracle PL/SQL este o extensie a limbajului SQL care combină puterea de manipulare a datelor a SQL cu puterea de procesare a limbajului procedural pentru a crea interogări SQL super puternice. PL/SQL asigură procesarea fără întreruperi a declarațiilor SQL prin îmbunătățirea securității, portabilității și robusteței bazei de date.
PL/SQL înseamnă „Extensii de limbaj procedural la limbajul de interogare structurat”.

👉 Descărcare PDF gratuită: Întrebări și răspunsuri la interviu PL/SQL


2) Faceți diferența între % ROWTYPE și TYPE RECORD.

% ROWTYPE este utilizat atunci când o interogare returnează un rând întreg dintr-un tabel sau vizualizare.
TIP RECORD pe de altă parte, este utilizat atunci când o interogare returnează o coloană de tabele sau vizualizări diferite.

De exemplu. TIPUL r_emp este RECORD (sno smp.smpno%type,sname smp sname %type)

e_rec smp %ROWTYPE

Cursorul c1 este select smpno,dept din smp;

e_rec c1 %ROWTYPE


3) Explicați utilizările cursorului.

Cursorul este o zonă privată denumită în SQL din care informațiile pot fi accesate. Li se cere să proceseze fiecare rând în mod individual pentru interogările care returnează mai multe rânduri.


4) Arată codul unui cursor pentru buclă.

Cursorul declară %ROWTYPE ca index de buclă implicit. Apoi deschide un cursor, primește rânduri de valori din setul activ în câmpurile înregistrării și se închide când toate înregistrările sunt procesate.

De exemplu.

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) Explicați utilizările declanșatorului bazei de date.

O unitate de program PL/SQL asociată cu o anumită tabelă de bază de date se numește declanșator de bază de date. Se foloseste pentru:

1) Modificări ale datelor de audit.

2) Înregistrați evenimentele în mod transparent.

3) Aplicați reguli de afaceri complexe.

4) Mențineți tabele replici

5) Deduceți valorile coloanei

6) Implementarea autorizațiilor de securitate complexe


6) Care sunt cele două tipuri de excepții.

O parte din gestionarea erorilor din blocul PL/SQL se numește Excepție. Au două tipuri: user_defined și predefined.


7) Afișați câteva excepții predefinite.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

NU S-AU GASIT DATE

TOO_MANY_ROWS

CURSOR_DEJA_DESCHIS

NUMAR INVALID

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

etc


8) Explicați Raise_application_error.

Este o procedură a pachetului DBMS_STANDARD care permite emiterea de mesaje de eroare definite de utilizator din declanșarea bazei de date sau sub-programul stocat.


9) Arată cum sunt apelate funcțiile și procedurile într-un bloc PL SQL.

Funcția este numită ca parte a unei expresii.

total:=calculate_sal('b644')

Procedura se numește declarație în PL / SQL.

calculate_bonus('b644');


10) Explicați două tabele virtuale disponibile în momentul executării declanșării bazei de date.

Coloanele din tabel sunt denumite OLD.column_name și NEW.column_name.

Pentru declanșatoarele legate de INSERT, valorile NEW.column_name sunt disponibile numai.

Pentru declanșatoarele legate de DELETE, valorile OLD.column_name sunt disponibile numai.

Pentru declanșatoarele legate de UPDATE, sunt disponibile ambele coloane din Tabel.


11) Care sunt regulile care trebuie aplicate NULL-urilor în timp ce se face comparații?

1) NULL nu este niciodată ADEVĂRAT sau FALS

2) NULL nu poate fi egal sau inegal cu alte valori

3) Dacă o valoare dintr-o expresie este NULL, atunci expresia însăși este evaluată la NULL, cu excepția operatorului de concatenare (||)


12) Cum este compilat un proces de PL SQL?

Procesul de compilare include procese de verificare a sintaxei, legare și generare de cod p.

Verificarea sintaxei verifică codurile PL SQL pentru erori de compilare. Când toate erorile sunt corectate, o adresă de stocare este atribuită variabilelor care dețin date. Se numește Legare. P-code este o listă de instrucțiuni pentru motorul PL SQL. Codul P este stocat în baza de date pentru blocurile cu nume și este utilizat data viitoare când este executat.


13) Faceți diferența între erorile de sintaxă și de rulare.

O eroare de sintaxă poate fi detectată cu ușurință de un compilator PL/SQL. De exemplu, ortografie incorectă.

O eroare de rulare este tratată cu ajutorul secțiunii de gestionare a excepțiilor din an bloc PL/SQL. De exemplu, instrucțiunea SELECT INTO, care nu returnează niciun rând.


14) Explicați Commit, Rollback și Savepoint.

Pentru o declarație COMMIT, următorul lucru este adevărat:

  • Alți utilizatori pot vedea modificările de date efectuate de tranzacție.
  • Încuietorile dobândite prin tranzacție sunt eliberate.
  • Munca efectuată prin tranzacție devine permanentă.

O instrucțiune ROLLBACK este emisă când tranzacția se termină, iar următoarele sunt adevărate.

  • Lucrarea efectuată într-o tranziție este anulată ca și cum nu ar fi fost niciodată emisă.
  • Toate blocările dobândite prin tranzacție sunt eliberate.

Acesta anulează toată munca efectuată de utilizator într-o tranzacție. Cu SAVEPOINT, doar o parte a tranzacției poate fi anulată.


15) Definiți cursorele implicite și explicite.

Un cursor este implicit implicit. Utilizatorul nu poate controla sau procesa informațiile din acest cursor.

Dacă o interogare returnează mai multe rânduri de date, programul definește un cursor explicit. Acest lucru permite aplicației să proceseze fiecare rând secvenţial pe măsură ce cursorul îl returnează.


16) Explicați eroarea tabelului mutant.

Apare atunci când un declanșator încearcă să actualizeze un rând pe care îl folosește în prezent. Este remediat prin utilizarea vizualizărilor sau a tabelelor temporare, astfel încât baza de date selectează unul și actualizează celălalt.


17) Când este necesară o declarație de declarare?

Declarația DECLARE este utilizată de blocurile anonime PL SQL, cum ar fi procedurile independente, nestocate. Dacă este utilizat, trebuie să apară mai întâi într-un fișier independent.


18) Câți declanșatori pot fi aplicați unui tabel?

La o masă pot fi aplicate maximum 12 declanșatori.


19) Care este importanța SQLCODE și SQLERRM?

SQLCODE returnează valoarea numărului de erori pentru ultima eroare întâlnită, în timp ce SQLERRM returnează mesajul pentru ultima eroare.


20) Dacă un cursor este deschis, cum putem găsi într-un bloc PL SQL?

poate fi utilizată variabila de stare a cursorului %ISOPEN.


Întrebări de interviu PL/SQL pentru experimentați

21) Afișați cele două excepții ale cursorului PL/SQL.

Cursor_Deja_Deschis

Invaid_cursor


22) Ce operatori se ocupă cu NULL?

NVL convertește NULL într-o altă valoare specificată.

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

IS NULL și IS NOT NULL pot fi folosite pentru a verifica în mod specific dacă valoarea unei variabile este NULL sau nu.


23) SQL*Plus are și un motor PL/SQL?

Nu, SQL*Plus nu are un motor PL/SQL încorporat în el. Astfel, tot codul PL/SQL este trimis direct la motorul bazei de date. Este mult mai eficient, deoarece fiecare afirmație nu este dezlipită individual.


24) Ce pachete sunt disponibile pentru dezvoltatorii PL SQL?

DBMS_ seria de pachete, cum ar fi DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.


25) Explicați 3 părți de bază ale unui declanșator.

  • O declarație sau un eveniment declanșator.
  • O restricție
  • O actiune

26) Ce sunt funcțiile caracterului?

INITCAP, UPPER, SUBSTR, LOWER și LENGTH sunt toate funcțiile caracterelor. Funcțiile de grup oferă rezultate bazate pe grupuri de rânduri, spre deosebire de rânduri individuale. Sunt MAX, MIN, AVG, COUNT și SUM.


27) Explicați TTITLE și BTITLE.

Comenzile TTITLE și BTITLE care controlează anteturile și subsolurile rapoartelor.


28) Afișați atributele cursorului PL/SQL.

%ISOPEN: Verifică dacă cursorul este deschis sau nu

%ROWCOUNT: Numărul de rânduri care sunt actualizate, șterse sau preluate.

%FOUND: Verifică dacă cursorul a preluat vreun rând. Este adevărat dacă sunt preluate rânduri

%NOT FOUND: Verifică dacă cursorul a preluat vreun rând. Este adevărat dacă rândurile nu sunt preluate.


29) Ce este o intersectă?

Intersect este produsul a două tabele și listează doar rândurile care se potrivesc.


30) Ce sunt secvențele?

Secvențele sunt folosite pentru a genera numere de secvență fără o suprasarcină de blocare. Dezavantajul său este că numărul de secvență se pierde dacă tranzacția este anulată.


31) Cum ați face referire la valorile coloanei ÎNAINTE și DUPĂ ați inserat și șters declanșatorii?

Folosind cuvântul cheie „new.column name”, declanșatorii pot face referire la valorile coloanei după noua colecție. Folosind cuvântul cheie „old.column name”, ei pot face referire la valorile coloanelor după colecția veche.


32) Care sunt utilizările cuvintelor cheie SYSDATE și USER?

SYSDATE se referă la data curentă a sistemului serverului. Este o pseudo-coloană. USER este, de asemenea, o pseudo-coloană, dar se referă la utilizatorul curent conectat la sesiune. Sunt folosite pentru a monitoriza modificările care au loc în tabel.


33) Cum ajută ROWID la rularea mai rapidă a unei interogări?

ROWID este adresa logică a unui rând, nu este o coloană fizică. Este compus din numărul blocului de date, numărul fișierului și numărul rândului din blocul de date. Astfel, timpul I/O este minimizat prin preluarea rândului și are ca rezultat o interogare mai rapidă.


34) Pentru ce sunt folosite linkurile de baze de date?

Legăturile de baze de date sunt create pentru a forma comunicare între diferite baze de date sau diferite medii precum testarea, dezvoltarea și producția. Link-urile bazei de date sunt doar în citire pentru a accesa și alte informații.


35) Ce face preluarea unui cursor?

Preluarea unui cursor citește Setarea rezultatelor rând cu rând.


36) Ce face închiderea unui cursor?

Închiderea unui cursor șterge zona SQL privată, precum și de-alocarea memoriei


37) Explicați utilizările Control File.

Este un fișier binar. Înregistrează structura bazei de date. Include locațiile mai multor fișiere jurnal, nume și marcaje de timp. Ele pot fi stocate în diferite locații pentru a ajuta la preluarea informațiilor dacă un fișier este corupt.


38) Explicați consistența

Consecvența arată că datele nu vor fi reflectate altor utilizatori până când datele nu sunt confirmate, astfel încât consecvența este menținută.


39) Diferă între blocurile anonime și sub-programe.

Blocurile anonime sunt blocuri fără nume care nu sunt stocate nicăieri, în timp ce subprogramele sunt compilate și stocate în baza de date. Ele sunt compilate în timpul execuției.


40) Diferă între DECODARE și CASE.

Instrucțiunile DECODE și CASE sunt foarte asemănătoare, dar CASE este versiunea extinsă a DECODE. DECODE nu permite declarații de luare a deciziilor în locul său.

selectați decode(totalsal=12000,'high',10000,'medium') ca decode_tesr din smp unde smpno in (10,12,14,16);

Această instrucțiune returnează o eroare.

CASE este utilizat direct în PL SQL, dar DECODE este utilizat doar în PL SQL prin SQL.


41) Explicați tranzacția autonomă.

O tranzacție autonomă este o tranzacție independentă a tranzacției principale sau a tranzacției-mamă. Nu este imbricat dacă este început de o altă tranzacție.

Există mai multe situații pentru a utiliza tranzacții autonome, cum ar fi înregistrarea evenimentelor și auditarea.


42) Faceți diferența între SGA și PGA.

SGA înseamnă System Global Area, în timp ce PGA înseamnă Program sau Process Global Area. PGA are doar 10% dimensiune RAM, dar SGA are o dimensiune RAM de 40%.


43) Care este locația Pre_defined_functions.

Acestea sunt stocate în pachetul standard numit „Funcții, proceduri și pachete”


44) Explicați polimorfismul în PL SQL.

Polimorfismul este o caracteristică a OOP. Este capacitatea de a crea o variabilă, un obiect sau o funcție cu forme multiple. PL/SQL acceptă polimorfismul sub formă de supraîncărcare a unității de program în interiorul unei funcții membre sau pachet.. Logica neambiguă trebuie evitată în timp ce se face supraîncărcarea.


45) Care sunt utilizările MERGE?

MERGE este folosit pentru a combina mai multe instrucțiuni DML într-una singură.

Sintaxă: merge în tablename

folosind (interogare)

on (condiția de alăturare)

atunci când nu se potrivește

Comanda [inserați/actualizați/ștergeți].

atunci când se potrivesc

Comanda [inserați/actualizați/ștergeți].


Întrebări de interviu PL/SQL pentru peste 5 ani cu experiență

46) Pot fi executate 2 interogări simultan într-un sistem de baze de date distribuite?

Da, pot fi executate simultan. O interogare este întotdeauna independentă de a doua interogare într-un sistem de baze de date distribuite bazat pe comiterea în două faze.


47) Explicați Raise_application_error.

Este o procedură a pachetului DBMS_STANDARD care permite emiterea unui mesaj de eroare definit de utilizator de la declanșatorul bazei de date sau sub-programul stocat.


48) Care este parametrul out folosit pentru, deși declarația return poate fi folosită și în pl/sql?

Parametrii Out permit mai mult de o valoare în programul de apelare. Parametrul Out nu este recomandat în funcții. Procedurile pot fi utilizate în locul funcțiilor dacă sunt necesare mai multe valori. Astfel, aceste proceduri sunt folosite pentru a executa parametrii Out.


49) Cum ați converti data în formatul de dată Julian?

Putem folosi șirul în format J:

SQL > select to_char(to_date('29-Mar-2013′,'dd-lu-yyyy'),'J') ca julian din dual;

JULIAN


50) Explicați SPOOL

Comanda spool poate imprima rezultatul instrucțiunilor SQL într-un fișier.

spool/tmp/sql_outtxt

selectați smp_name, smp_id din smp unde dept='conturi';

bobină;


51) Menționați din ce constă pachetul PL/SQL?

Un pachet PL/SQL este format din

  • Tabel PL/SQL și instrucțiuni de înregistrare TYPE
  • Proceduri și Funcții
  • cursoare
  • Variabile (tabele, scalari, înregistrări etc.) și constante
  • Nume excepții și pragmate pentru a lega un număr de eroare cu o excepție
  • cursoare

52) Menționați care sunt beneficiile pachetelor PL/SQL?

Oferă mai multe beneficii, cum ar fi

  • Ascundere forțată a informațiilor: Oferă libertatea de a alege dacă să păstrați datele private sau publice
  • Design de sus în jos: Puteți proiecta interfața după codul ascuns în pachet înainte de a implementa efectiv modulele
  • Persistența obiectului: Obiectele declarate într-o specificație de pachet se comportă ca date globale pentru toate obiectele PL/SQL din aplicație. Puteți modifica pachetul într-un modul și apoi trimiteți acele modificări la alt modul
  • Design orientat obiect: Pachetul oferă dezvoltatorilor un control puternic asupra modului în care modulele și structurile de date din interiorul pachetului pot fi utilizate
  • Garantarea integrității tranzacției: Oferă un nivel de integritate a tranzacțiilor
  • Îmbunătățirea performanței: RDBMS urmărește automat valabilitatea tuturor obiectelor program stocate în baza de date și îmbunătățește performanța pachetelor.

53) Menționați care sunt diferite metode de urmărire a codului PL/SQL?

Codul de urmărire este o tehnică crucială pentru măsurarea performanței codului în timpul rulării. Diferite metode de urmărire includ

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION și DBMS_MONITOR
  • utilitare trcsess și tkproof

54) Menționați ce face profilerul ierarhic?

Profilerul ierarhic ar putea profila apelurile efectuate în PL/SQL, în afară de a umple golul dintre lacunele și așteptările de urmărire a performanței. Eficiența profilerului ierarhic include

  • Raportare distinctă pentru SQL și consumul de timp PL/SQL
  • Raportează numărul de apeluri de subprograme distincte efectuate în PL/SQL și timpul petrecut cu fiecare apel de subprogram
  • Rapoarte de analiză interactive multiple în format HTML folosind utilitarul de linie de comandă
  • Mai eficient decât profilerul convențional și alte utilitare de urmărire

55) Menționați ce vă permite mesajul PLV să faceți?

Mesajul PLV vă permite

  • Atribuiți mesaj text individual la rândul specificat din tabelul PL/SQL
  • Acesta preia textul mesajului după număr
  • Înlocuiește automat propriile mesaje standard cu propriile mesaje Oracle mesaje de eroare cu comutare de restricționare
  • Încărcare lot numere de mesaje și text dintr-un tabel de bază de date direct PLV msg PL/SQL tabel

56) Menționați ce este ofertele pachetului PLV ​​(PL/Vision)?

  • Valoarea de substituție nulă
  • Set de rutine de afirmare
  • Utilități diverse
  • Set de constante utilizate în întreaga viziune PL
  • Tipuri de date predefinite

57) Menționați ce folos PLVprs și PLVprsps?

  • PLVprs: Este o extensie pentru analizarea șirurilor pentru PL/SQL și este cel mai scăzut nivel al funcționalității de analiză a șirurilor
  • PLVprsps: Este pachetul de cel mai înalt nivel pentru a analiza codul sursă PL/SQL în atomice separate. Se bazează pe alte pachete de analiză pentru a lucra.

58) Explicați cum puteți copia un fișier în conținutul fișierului și fișierul în tabelul PL/SQL în avans PL/SQL?

Cu un singur apel de program – „procedura de copiere”, puteți copia conținutul complet al unui fișier într-un alt fișier. În timp ce pentru a copia conținutul unui fișier direct într-un tabel PL/SQL, puteți folosi programul „fișier2pstab”.


59) Explicați cum se face gestionarea excepțiilor în avans PL/SQL?

Pentru gestionarea excepțiilor PL/SQL oferă un plugin eficient PLVexc. PLVexc acceptă patru acțiuni diferite de gestionare a excepțiilor.

  • Continuați procesarea
  • Înregistrați și apoi continuați
  • Opriți procesarea
  • Înregistrați și apoi opriți procesarea

Pentru acele excepții care reapar, puteți utiliza instrucțiunea RAISE.


60) Menționați cu ce problemă s-ar putea confrunta când scrieți informații de jurnal într-un tabel de bază de date în PL/SQL?

În timp ce scrieți informații de jurnal într-un tabel de bază de date, problema cu care vă confruntați este că informațiile sunt disponibile numai după ce noile rânduri sunt trimise în baza de date. Aceasta ar putea fi o problemă, deoarece un astfel de PLVlog este de obicei implementat pentru a urmări erorile și, în multe astfel de cazuri, tranzacția curentă ar eșua sau ar avea nevoie de o retragere.


61) Menționați care este funcția care este utilizată pentru a transfera un jurnal de tabel PL/SQL într-un tabel de bază de date?

Pentru a transfera un jurnal de tabel PL/SQL, o funcție de tabel de jurnal de bază de date „PROCEDURA ps2db” este folosit.


62) Când trebuie să utilizați un punct de salvare implicit „rollback to” al PLVlog?

Punctul de salvare implicit „rollback to” al PLVlog este utilizat atunci când utilizatorii au activat activitatea de rollback și nu au furnizat un punct de salvare alternativ în apelul la put_line. Punctul de salvare implicit este inițializat la constanta c none.


63) De ce PLVtab este considerat cel mai simplu mod de a accesa tabelul PL/SQL?

Tabelul PL/SQL este cel mai apropiat de matrice din PL/SQL, iar pentru a accesa acest tabel trebuie mai întâi să declarați un tip de tabel, apoi trebuie să declarați tabelul PL/SQL în sine. Dar folosind PLVtab, puteți evita definirea propriului tip de tabel PL/SQL și puteți face accesul ușor la tabelul de date PL/SQL.


64) Menționați ce vă permite să faceți PLVtab când afișați conținutul tabelelor PL/SQL?

PLVtab vă permite să faceți următoarele lucruri atunci când afișați conținutul tabelelor PL/SQL

  • Afișează sau suprima un antet pentru tabel
  • Afișați sau suprimați numerele de rând pentru valorile tabelului
  • Afișați un prefix înaintea fiecărui rând al tabelului

65) Explicați cum puteți salva sau plasa mesajul într-un tabel?

Pentru a salva un mesaj într-un tabel, o puteți face în două moduri

  • Încărcați mesaje individuale cu apeluri către add_text procedură
  • Încărcați seturi de mesaje dintr-un tabel de bază de date cu load_from_dbms procedură

66) Menționați la ce folosește funcția „procedura modulului” în PL/SQL?

„Procedura modulului” permite convertirea tuturor liniilor de cod într-o unitate de program definită cu un apel de procedură. Există trei argumente pentru module

  • module_in
  • cor_in
  • Last_module_in

67) Menționați ce fac PLVcmt și PLVrb în PL/SQL?

PL/Vision oferă două pachete care vă ajută să gestionați procesarea tranzacțiilor în aplicația PL/SQL. Este PLVcmt și PLVrb.

  • PLVcmt: Pachetul PLVcmt înglobează logica și complexitatea pentru tratarea procesării commit
  • PLVrb: Oferă o interfață programatică pentru a anula activitatea în PL/SQL

Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)