65 PL/SQL-i intervjuu küsimusi ja vastuseid (2024)

Siin on PL/SQL-intervjuu küsimused ja vastused nii värskematele kui ka kogenud kandidaatidele oma unistuste töökoha saamiseks.

 

PL/SQL-intervjuu küsimused ja vastused esmakursuslastele

1) Mis on PL SQL?

Oracle PL/SQL on SQL-keele laiendus, mis ühendab SQL-i andmetöötlusvõime ja protseduurikeele töötlemisvõime, et luua ülivõimsaid SQL-päringuid. PL/SQL tagab SQL-lausete sujuva töötlemise, suurendades andmebaasi turvalisust, teisaldatavust ja töökindlust.
PL/SQL tähistab struktureeritud päringu keele protseduurikeele laiendusi.

👉 Tasuta PDF-i allalaadimine: PL/SQL-intervjuu küsimused ja vastused


2) Eristage % ROWTYPE ja TYPE RECORD.

% ROWTYPE kasutatakse siis, kui päring tagastab terve tabeli või vaate rea.
TÜÜPIRJELDUS teisest küljest kasutatakse, kui päring tagastab erinevate tabelite või vaadete veeru.

Nt. TYPE r_emp on KIRJUTAGE (sno smp.smpno%type,sname smp sname %type)

e_rec smp %ROWTYPE

Kursor c1 on vali smpno, sügavus smp-st;

e_rec c1 %ROWTYPE


3) Selgitage kursori kasutusviise.

Kursor on SQL-is nimega privaatne ala, kust pääseb ligi teabele. Nad peavad töötlema iga rida eraldi päringute puhul, mis tagastavad mitu rida.


4) Näita tsükli kursori koodi.

Kursor deklareerib %ROWTYPE kaudselt tsükliindeksiks. Seejärel avab see kursori, hangib kirje väljadel olevast aktiivsest komplektist väärtuste read ja suletakse, kui kõik kirjed on töödeldud.

Nt.

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) Selgitage andmebaasi päästiku kasutusalasid.

Konkreetse andmebaasitabeliga seotud PL/SQL programmiüksust nimetatakse andmebaasi käivitajaks. Seda kasutatakse:

1) Auditi andmete muudatused.

2) Logi sündmused läbipaistvalt.

3) Jõustada keerulised ärireeglid.

4) Hooldage koopiatabeleid

5) Tuletage veergude väärtused

6) Rakendada kompleksseid turbelubasid


6) Millised on kahte tüüpi erandid?

PL/SQL-i ploki tõrkekäsitluse osa nimetatakse erandiks. Neid on kahte tüüpi: user_defined ja predefined.


7) Näidake mõnda eelmääratletud erandit.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

EI_DATA_LEITUD

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

INVALID_NUMBER

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

ja nii edasi


8) Selgitage Raise_application_error.

See on paketi DBMS_STANDARD protseduur, mis võimaldab anda andmebaasi päästikust või salvestatud alamprogrammist kasutaja määratud veateateid.


9) Näidake, kuidas funktsioone ja protseduure PL SQL-i plokis kutsutakse.

Funktsiooni nimetatakse avaldise osaks.

total:=calculate_sal('b644')

Protseduuri kutsutakse sisse avaldusena PL / SQL.

calculate_bonus('b644');


10) Selgitage kahte virtuaalset tabelit, mis on andmebaasi käivitamise ajal saadaval.

Tabeli veergudele viidatakse kui VANA.veeru_nimi ja UUS.veeru_nimi.

INSERTiga seotud päästikute puhul on väärtused NEW.column_name saadaval ainult.

DELETE-ga seotud päästikute puhul on väärtused VANA.veeru_nimi saadaval ainult.

VÄRSKENDAMISEGA seotud päästikute jaoks on saadaval mõlemad tabeli veerud.


11) Milliseid reegleid tuleb kohaldada NULL-ide suhtes võrdluste tegemisel?

1) NULL ei ole kunagi TÕENE ega VÄÄR

2) NULL ei saa olla teiste väärtustega võrdne ega ebavõrdne

3) Kui avaldise väärtus on NULL, siis avaldis ise on NULL, välja arvatud konkatenatsioonioperaator (||)


12) Kuidas PL SQL-i protsess koostatakse?

Kompileerimisprotsess hõlmab süntaksi kontrollimise, sidumise ja p-koodi genereerimise protsesse.

Süntaksikontroll kontrollib PL SQL-koodide kompileerimisvigu. Kui kõik vead on parandatud, määratakse andmeid hoidvatele muutujatele salvestusaadress. Seda nimetatakse sidumiseks. P-kood on PL SQL-mootori juhiste loend. P-kood salvestatakse nimega plokkide andmebaasi ja seda kasutatakse järgmisel käivitamisel.


13) Eristage süntaksi ja käitusaja vigu.

Süntaksivea saab hõlpsasti tuvastada PL/SQL-i kompilaatoriga. Näiteks õigekirjavea eest.

Käitusaja viga käsitletakse erandite käsitlemise jaotise abil PL/SQL plokk. Näiteks lause SELECT INTO, mis ei tagasta ühtegi rida.


14) Selgitage sidumist, tagasipööramist ja salvestamispunkti.

COMMIT-lause puhul kehtib järgmine:

  • Teised kasutajad näevad tehinguga tehtud andmete muudatusi.
  • Tehinguga omandatud lukud vabastatakse.
  • Tehinguga tehtud töö muutub püsivaks.

Tehingu lõppedes väljastatakse ROLLBACK avaldus ja järgmine on tõsi.

  • Üleminekul tehtud töö võetakse tagasi, nagu poleks seda kunagi välja antud.
  • Kõik tehinguga omandatud lukud vabastatakse.

See tühistab kogu kasutaja poolt tehinguga tehtud töö. SAVEPOINTiga saab tagasi võtta ainult osa tehingust.


15) Määratlege kaudsed ja selgesõnalised kursorid.

Kursor on vaikimisi kaudne. Kasutaja ei saa selles kursoris olevat teavet juhtida ega töödelda.

Kui päring tagastab mitu andmerida, määrab programm selgesõnalise kursori. See võimaldab rakendusel töödelda iga rida järjestikku, kui kursor selle tagastab.


16) Selgitage mutatsioonitabeli viga.

See ilmneb siis, kui päästik proovib värskendada praegu kasutatavat rida. See on fikseeritud vaadete või ajutiste tabelite abil, nii et andmebaas valib ühe ja värskendab teist.


17) Millal on vaja deklaratsiooni?

DECLARE-lauset kasutavad PL SQL anonüümsed plokid, näiteks eraldiseisvate, salvestamata protseduuridega. Kui seda kasutatakse, peab see olema eraldiseisvas failis esikohal.


18) Mitut päästikut saab tabelile rakendada?

Ühele tabelile saab rakendada maksimaalselt 12 päästikut.


19) Mis on SQLCODE ja SQLERRM tähtsus?

SQLCODE tagastab vea numbri väärtuse viimase ilmnenud tõrke korral, SQLERRM aga viimase vea teate.


20) Kui kursor on avatud, kuidas leiame PL SQL-i plokist?

kasutada saab kursori olekumuutujat %ISOPEN.


PL/SQL-intervjuu küsimused kogenud inimestele

21) Näidake kahte PL/SQL-i kursori erandit.

Kursor_Juba_avatud

Invaid_cursor


22) Millised operaatorid tegelevad NULL-iga?

NVL teisendab NULL-i teiseks määratud väärtuseks.

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

IS NULL ja IS NOT NULL saab kasutada selleks, et kontrollida, kas muutuja väärtus on NULL või mitte.


23) Kas SQL*Plusil on ka PL/SQL-mootor?

Ei, SQL*Plus ei ole sellesse manustatud PL/SQL-mootorit. Seega saadetakse kogu PL/SQL-kood otse andmebaasimootorisse. See on palju tõhusam, kuna iga väidet ei eemaldata eraldi.


24) Millised paketid on PL SQL-i arendajatele saadaval?

DBMS_ pakettide seeria, näiteks DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.


25) Selgitage päästiku 3 põhiosa.

  • Käivitav avaldus või sündmus.
  • Piirang
  • Tegevus

26) Mis on märgifunktsioonid?

INITCAP, UPPER, SUBSTR, LOWER ja LENGTH on kõik märgifunktsioonid. Rühmafunktsioonid annavad tulemusi, mis põhinevad ridade rühmadel, mitte üksikutel ridadel. Need on MAX, MIN, AVG, COUNT ja SUM.


27) Selgitage TTITLE ja BTITLE.

TTITLE ja BTITLE käsud, mis juhivad aruannete päiseid ja jaluseid.


28) Näita PL/SQL-i kursori atribuute.

%ISOPEN: Kontrollib, kas kursor on avatud või mitte

%ROWCOUNT: Värskendatud, kustutatud või toodud ridade arv.

%FOUND: Kontrollib, kas kursor on mõne rea toonud. See on tõsi, kui read tõmmatakse

%NOT FOUND: Kontrollib, kas kursor on mõne rea toonud. See on tõsi, kui ridu ei võeta.


29) Mis on ristmik?

Intersect on kahe tabeli korrutis ja see loetleb ainult sobivad read.


30) Mis on jadad?

Järjestusi kasutatakse järjenumbrite genereerimiseks ilma lukustamata. Selle puuduseks on see, et tehingu tühistamisel kaob järjekorranumber.


31) Kuidas viidaksite veeru väärtustele ENNE ja PÄRAST päästikute lisamist ja kustutamist?

Märksõna „new.column name” abil saavad päästikud viidata veeruväärtustele uue kogu alusel. Kasutades märksõna "vana.veeru nimi", saavad nad viidata veergude väärtustele vana kogu järgi.


32) Milleks kasutatakse SYSDATE ja USER märksõnu?

SYSDATE viitab praegusele serverisüsteemi kuupäevale. See on pseudotulp. KASUTAJA on samuti pseudoveerg, kuid viitab praegusele kasutajale, kes on seansse sisse logitud. Neid kasutatakse tabelis toimuvate muutuste jälgimiseks.


33) Kuidas aitab ROWID päringut kiiremini käivitada?

ROWID on rea loogiline aadress, see ei ole füüsiline veerg. See koosneb andmeploki numbrist, failinumbrist ja andmeploki rea numbrist. Seega minimeeritakse I/O aeg rea toomisel ja tulemuseks on kiirem päring.


34) Milleks andmebaasilinke kasutatakse?

Andmebaasilingid luuakse selleks, et luua side erinevate andmebaaside või erinevate keskkondade, nagu testimine, arendus ja tootmine, vahel. Andmebaasi lingid on kirjutuskaitstud, et pääseda juurde ka muule teabele.


35) Mida teeb kursori toomine?

Kursori toomine loeb Result Set ridade kaupa.


36) Mida teeb kursori sulgemine?

Kursori sulgemine tühjendab privaatse SQL-ala ja eraldab mälu


37) Selgitage juhtfaili kasutusalasid.

See on binaarfail. See salvestab andmebaasi struktuuri. See sisaldab mitme logifaili asukohti, nimesid ja ajatempleid. Neid saab salvestada erinevatesse kohtadesse, et aidata teavet hankida, kui üks fail rikutakse.


38) Selgitage järjepidevust

Järjepidevus näitab, et andmeid ei kajastu teistele kasutajatele enne, kui andmed on kinnitatud, nii et järjepidevus säilib.


39) Erinevused anonüümsete plokkide ja alamprogrammide vahel.

Anonüümsed plokid on nimeta plokid, mida alamprogrammide kompileerimise ja andmebaasi salvestamise ajal kuhugi ei salvestata. Need koostatakse käitamise ajal.


40) Erinevus DECODE ja CASE vahel.

DECODE ja CASE avaldused on väga sarnased, kuid CASE on DECODE laiendatud versioon. DECODE ei luba oma asemel otsuseid langetavaid avaldusi.

valige decode(kokku=12000,'kõrge',10000,'keskmine') kui decode_tesr alates smp, kus smpno in (10,12,14,16);

See väide tagastab vea.

CASE-i kasutatakse PL SQL-is otse, kuid DECODE-i kasutatakse PL SQL-is ainult SQL-i kaudu.


41) Selgitage autonoomset tehingut.

Autonoomne tehing on põhi- või ematehingust sõltumatu tehing. Seda ei pesitata, kui selle käivitab mõni muu tehing.

Autonoomsete tehingute (nt sündmuste logimine ja auditeerimine) kasutamiseks on mitu olukorda.


42) Tehke vahet SGA ja PGA vahel.

SGA tähistab süsteemi globaalset piirkonda, PGA aga programmi või protsessi globaalset piirkonda. PGA-le eraldatakse ainult 10% RAM-i, kuid SGA-le antakse 40% RAM-i suurust.


43) Mis on Eel_defineeritud_funktsioonide asukoht.

Neid hoitakse standardpaketis nimega "Funktsioonid, protseduurid ja paketid"


44) Selgitage polümorfismi PL SQL-is.

Polümorfism on OOP tunnus. See on võime luua mitme vormiga muutuja, objekt või funktsioon. PL/SQL toetab polümorfismi programmiüksuse ülekoormamise näol liikmefunktsiooni või paketi sees. Ülekoormamise ajal tuleb vältida ühemõttelist loogikat.


45) Milleks on MERGE kasutusala?

MERGE-i kasutatakse mitme DML-lause ühendamiseks üheks.

Süntaks : ühendage tabelinimega

kasutades (päring)

sisse (liitumise tingimus)

kui ei sobinud siis

[insert/update/delete] käsk

kui sobitatud siis

[insert/update/delete] käsk


PL/SQL-i intervjuuküsimused üle 5-aastase kogemusega

46) Kas hajutatud andmebaasisüsteemis saab korraga täita 2 päringut?

Jah, neid saab teostada üheaegselt. Üks päring on alati sõltumatu teisest päringust hajutatud andmebaasisüsteemis, mis põhineb kahefaasilisel sidumisel.


47) Selgitage Raise_application_error.

See on paketi DBMS_STANDARD protseduur, mis võimaldab andmebaasi päästikust või salvestatud alamprogrammist väljastada user_defined veateateid.


48) Millist out parameetrit kasutatakse, kuigi return-lauset saab kasutada ka pl/sql-is?

Out parameetrid lubavad kutsuvas programmis rohkem kui ühte väärtust. Out parameetrit ei soovitata funktsioonides. Kui on vaja mitut väärtust, saab funktsioonide asemel kasutada protseduure. Seega kasutatakse neid protseduure Out parameetrite täitmiseks.


49) Kuidas teisendaksite kuupäeva Juliuse kuupäevavormingusse?

Saame kasutada J-vormingus stringi:

SQL > valige to_char(to_date('29-Mar-2013','dd-mon-yyyy'),'J') as Julian alates dual;

JULIAN


50) Selgitage SPOOL

Spool käsk võib printida faili sql-lausete väljundi.

spool/tmp/sql_outtxt

vali smp-st smp_name, smp_id, kus dept='kontod';

spool maha;


51) Nimetage, millest PL/SQL pakett koosneb?

PL/SQL pakett koosneb

  • PL/SQL tabeli ja kirje TYPE avaldused
  • Protseduurid ja funktsioonid
  • Kursorid
  • Muutujad (tabelid, skalaarid, kirjed jne) ja konstandid
  • Erandite nimed ja pragmad veanumbri seostamiseks erandiga
  • Kursorid

52) Nimetage, millised on PL/SQL-pakettide eelised?

See pakub mitmeid eeliseid, näiteks

  • Sunnitud teabe peitmine: See pakub vabadust valida, kas hoida andmed privaatsena või avalikuna
  • Ülevalt alla disain: Saate kujundada liidese paketis peidetud koodile enne, kui olete moodulid ise juurutanud
  • Objekti püsivus: Paketi spetsifikatsioonis deklareeritud objektid käituvad kõigi rakenduses olevate PL/SQL-objektide globaalsete andmetena. Saate paketti ühes moodulis muuta ja seejärel viidata neile muudatustele teisele moodulile
  • Objektile orienteeritud disain: Pakett annab arendajatele tugeva kontrolli selle üle, kuidas paketi sees olevaid mooduleid ja andmestruktuure saab kasutada
  • Tehingu terviklikkuse tagamine: See tagab tehingute terviklikkuse taseme
  • Jõudluse paranemine: . RDBMS jälgib automaatselt kõigi andmebaasi salvestatud programmiobjektide kehtivust ja parandab pakettide jõudlust.

53) Nimetage, millised on erinevad meetodid PL/SQL-koodi jälgimiseks?

Jälgimiskood on oluline meetod koodi jõudluse mõõtmiseks käitusajal. Erinevad jälgimismeetodid hõlmavad

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION ja DBMS_MONITOR
  • trcsess ja tkproof utiliidid

54) Mainige, mida hierarhiline profiili koostaja teeb?

Hierarhiline profileerija võiks profiilida PL/SQL-is tehtud kõned, välja arvatud lünkade täitmise ja jõudluse jälgimise ootuste vahel. Hierarhilise profileerija tõhusus hõlmab järgmist

  • Eraldi aruandlus SQL ja PL/SQL ajakulu
  • Aruandab PL/SQL-is tehtud erinevate alamprogrammide kõnede arvu ja iga alamprogrammi kutsega kulutatud aega
  • Mitu interaktiivset analüüsiaruannet HTML-vormingus käsurea utiliidi abil
  • Tõhusam kui tavaline profileerija ja muud jälgimisutiliidid

55) Mainige, mida võimaldab PLV sõnum teil teha?

PLV-sõnum võimaldab teil

  • Määrake individuaalne tekstsõnum PL/SQL tabeli määratud reale
  • See otsib sõnumi teksti numbri järgi
  • See asendab standardsed sõnumid automaatselt teie enda sõnumitega Oracle piirangu lülitiga veateated
  • Sõnumite numbrite ja teksti pakettlaadimine andmebaasi tabelist otse PLV msg PL/SQL tabel

56) Mainige, mida pakub PLV (PL/Vision) pakett?

  • Null asendusväärtus
  • Kehtestamise rutiinide komplekt
  • Mitmesugused kommunaalkulud
  • Kogu PL-nägemises kasutatud konstantide komplekt
  • Eelmääratletud andmetüübid

57) Nimetage, milleks on PLVprs ja PLVprsps?

  • PLVprs: See on PL/SQL-i stringide sõelumise laiendus ja see on stringide sõelumise funktsioonide madalaim tase
  • PLVprsps: See on kõrgeima taseme pakett PL/SQL-i lähtekoodi eraldi aatomiteks sõelumiseks. See tugineb töö tegemiseks muudele parsimispakettidele.

58) Selgitage, kuidas saate kopeerida faili faili sisusse ja faili eelnevalt PL/SQL-i tabelisse?

Ühe programmikõnega – “fkopeerimisprotseduur”, saate kopeerida ühe faili täieliku sisu teise faili. Faili sisu otse PL/SQL tabelisse kopeerimiseks võite kasutada programmi "file2pstab”.


59) Selgitage, kuidas erandite käsitlemine toimub eelnevalt PL/SQL-is?

eest erandite käsitlemine PL/SQL pakub tõhusat pluginat PLVexc. PLVexc toetab nelja erinevat erandite käsitlemise toimingut.

  • Jätkake töötlemist
  • Salvestage ja seejärel jätkake
  • Peatage töötlemine
  • Salvestage ja seejärel peatage töötlemine

Korduvate erandite puhul võite kasutada RAISE-lauset.


60) Nimetage, millise probleemiga võite kokku puutuda logiteabe kirjutamisel PL/SQL-is andmebaasi tabelisse?

Andmebaasi tabelisse logiteabe kirjutamisel seisneb probleem selles, et teave on saadaval alles siis, kui uued read on andmebaasi sidunud. See võib olla probleem, kuna sellist PLVlogi kasutatakse tavaliselt vigade jälgimiseks ja paljudel sellistel juhtudel praegune tehing ebaõnnestub või vajaks muul viisil tagasivõtmist.


61) Nimetage, mis on funktsioon, mida kasutatakse PL/SQL tabeli logi andmebaasi tabelisse ülekandmiseks?

PL/SQL-tabeli ülekandmiseks logige andmebaasi logitabeli funktsiooni "PROTSEDUUR ps2db" kasutatakse.


62) Millal peate kasutama PLVlogi vaikimisi "tagasi pöördumise" salvestuspunkti?

PLVlogi vaikimisi tagasipööramise salvestuspunkti kasutatakse siis, kui kasutajad on tagasipööramise sisse lülitanud ega ole pakkunud put_line kõnes alternatiivset salvestuspunkti. Vaikimisi salvestuspunkt lähtestatakse konstantiks c none.


63) Miks peetakse PLVtab-i lihtsaimaks viisiks PL/SQL-tabelile juurde pääseda?

PL/SQL-tabel on PL/SQL-i massiividele kõige lähemal ja sellele tabelile juurdepääsuks peate esmalt deklareerima tabelitüübi ja seejärel deklareerima PL/SQL-tabeli enda. Kuid PLVtabi abil saate vältida oma PL/SQL-tabeli tüübi määratlemist ja muuta PL/SQL-i andmetabelile juurdepääs lihtsaks.


64) Mainige, mida võimaldab PLVtab teil teha, kui näitate PL/SQL-tabelite sisu?

PLVtab võimaldab teil PL/SQL-tabelite sisu kuvamisel teha järgmisi asju

  • Tabeli päise kuvamine või sulgemine
  • Tabeli väärtuste reanumbrite kuvamine või väljalülitamine
  • Näidake eesliide enne iga tabeli rida

65) Selgitage, kuidas saate oma sõnumi salvestada või tabelisse paigutada?

Sõnumi salvestamiseks tabelisse saate seda teha kahel viisil

  • Laadige üksikud sõnumid kõnedega numbrile add_text menetlus
  • Laadige andmebaasi tabelist sõnumikomplektid rakendusega load_from_dbms menetlus

66) Nimetage, mida kasutatakse funktsiooni "moodulprotseduur" PL/SQL-is?

“Mooduliprotseduur” võimaldab teisendada kõik koodiread kindlas programmiüksuses ühe protseduurikutsega. Moodulite jaoks on kolm argumenti

  • module_in
  • cor_in
  • Viimane_moodul

67) Mainige, mida PLVcmt ja PLVrb PL/SQL-is teevad?

PL/Vision pakub kahte paketti, mis aitavad teil hallata tehingute töötlemist PL/SQL rakenduses. See on PLVcmt ja PLVrb.

  • PLVcmt: PLVcmt pakett hõlmab loogikat ja keerukust sissekannete töötlemisega tegelemiseks
  • PLVrb: See pakub programmilist liidest tegevuste tagasipööramiseks PL/SQL-is

Need intervjuu küsimused aitavad ka teie viva (suuline)