65 populiariausi PL / SQL interviu klausimai ir Atsakymai

Anonim

Atsisiųsti PDF

1) Kas yra PL SQL?

PL SQL yra procedūrinė kalba, turinti interaktyvią SQL, taip pat procesinių programavimo kalbų konstrukcijos, tokios kaip sąlyginis šakojimas ir iteracija.

2) Išskirkite% ROWTYPE ir TYPE RECORD.

% ROWTYPE naudojamas, kai užklausa pateikia visą lentelės ar rodinio eilutę.

Kita vertus, TYPE RECORD naudojamas, kai užklausa pateikia skirtingų lentelių ar rodinių stulpelį.

Pvz. TYPE r_emp yra RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

Žymeklis c1 yra išsirinktas smpno, įdėtas iš smp;

e_rec c1% ROWTYPE

3) Paaiškinkite žymeklio naudojimą.

Žymeklis yra įvardyta privati ​​SQL sritis, iš kurios galima pasiekti informaciją. Jie privalo kiekvieną eilutę apdoroti atskirai, jei reikia užklausų, kurios pateikia kelias eilutes.

4) Rodyti kilpos žymeklio kodą.

Žymeklis netiesiogiai deklaruoja% ROWTYPE kaip ciklo indeksą. Tada jis atidaro žymeklį, gauna reikšmių eilutes iš aktyvaus rinkinio įrašo laukuose ir išsijungia, kai apdorojami visi įrašai.

Pvz. FOR smp_rec C1 LOOP

totalals = totalal + smp_recsal;

ENDLOOP;

5) Paaiškinkite duomenų bazės aktyviklio naudojimą.

PL / SQL programos vienetas, susietas su tam tikra duomenų bazės lentele, vadinamas duomenų bazės trigeriu. Jis naudojamas:

1) Audito duomenų pakeitimai.

2) Užregistruokite įvykius skaidriai.

3) vykdyti sudėtingas verslo taisykles.

4) prižiūrėkite lentelių kopijas

5) Išveskite stulpelių vertes

6) Įgyvendinti sudėtingus saugos įgaliojimus

6) Kokios yra dviejų rūšių išimtys.

Klaida tvarkant dalį PL / SQL bloko vadinama Išimtimi. Jie turi du tipus: user_defined ir predefined.

7) Parodykite iš anksto nustatytas išimtis.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

NO_DATA_FOUND

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

INVALID_NUMBER

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

ir kt.

8) Paaiškinkite Raise_application_error.

Tai yra paketo DBMS_STANDARD procedūra, leidžianti iš vartotojo nustatytų klaidų pranešimų iš duomenų bazės paleidimo arba saugomos paprogramės.

9) Parodykite, kaip funkcijos ir procedūros vadinamos PL SQL bloku.

Funkcija vadinama išraiškos dalimi.

viso: = apskaičiuoti_sal ('b644')

Procedūra PL / SQL vadinama kaip sakinys.

apskaičiuoti premiją ('b644');

10) Paaiškinkite dvi virtualias lenteles, galimas duomenų bazės trigerio vykdymo metu.

Lentelių stulpeliai vadinami THEN.column_name ir DABAR.column_name.

Su INSERT susijusiais trigeriais NOW.column_name reikšmės yra prieinamos.

Naudojant su DELETE susijusius aktyviklius, THEN.column_name reikšmės yra prieinamos.

Su UPDATE susijusiais aktyvikliais galimi abu lentelės stulpeliai.

11) Kokios taisyklės turi būti taikomos NULL, kai atliekami palyginimai?

1) NULL niekada nėra TIESA ar NETIESA

2) NULL negali būti lygus ar nevienodas kitoms reikšmėms

3) Jei išraiškos vertė yra NULL, tada pati išraiška yra NULL, išskyrus konkretinimo operatorių (||)

12) Kaip sudaromas PL SQL procesas?

Kompiliavimo procesas apima sintaksės tikrinimo, susiejimo ir p kodo generavimo procesus.

Sintaksės tikrinimas tikrina, ar PL SQL koduose nėra kompiliavimo klaidų. Ištaisius visas klaidas, kintamiesiems, kuriuose laikomi duomenys, priskiriamas saugyklos adresas. Tai vadinama privalomuoju. P kodas yra PL SQL variklio instrukcijų sąrašas. P kodas saugomas įvardytų blokų duomenų bazėje ir naudojamas kitą kartą, kai jis bus vykdomas.

13) Skirkite sintaksės ir vykdymo laiko klaidas.

Sintaksės klaidą gali lengvai nustatyti PL / SQL kompiliatorius. Pavyzdžiui, neteisinga rašyba.

Klaida vykdoma naudojant išimčių tvarkymo skyrių PL / SQL bloke. Pvz., SELECT INTO sakinys, kuris negrąžina jokių eilučių.

14) Paaiškinkite „Commit“, „Rollback“ ir „Savepoint“.

Kalbant apie „COMMIT“ teiginį, taip yra:

  • Kiti vartotojai gali matyti operacijos atliktus duomenų pakeitimus.
  • Sandorio metu gautos spynos atleidžiamos.
  • Sandorio atliktas darbas tampa nuolatinis.

ROLLBACK pareiškimas išduodamas, kai baigiasi sandoris, ir tai yra teisinga.

  • Pereinamuoju laikotarpiu atliktas darbas anuliuojamas taip, lyg jis niekada nebūtų išduotas.
  • Visos spynos, įsigytos pagal sandorį, yra atleidžiamos.

Atšaukiamas visas vartotojo atliktas darbas atliekant operaciją. Naudojant „SAVEPOINT“, galima atšaukti tik dalį operacijos.

15) Apibrėžkite numanomus ir aiškius žymeklius.

Pagal numatytuosius nustatymus žymeklis yra numanomas. Vartotojas negali valdyti ar apdoroti šio žymeklio informacijos.

Jei užklausa pateikia kelias duomenų eilutes, programa apibrėžia aiškų žymeklį. Tai leidžia programai nuosekliai apdoroti kiekvieną eilutę, kai žymeklis ją grąžina.

16) Paaiškinkite mutavimo lentelės klaidą.

Tai įvyksta, kai aktyviklis bando atnaujinti šiuo metu naudojamą eilutę. Tai pataisoma naudojant rodinius arba laikinas lenteles, todėl duomenų bazė parenka vieną, o kitą atnaujina.

17) Kada reikia deklaruoti pareiškimą?

DECLARE sakinį naudoja PL SQL anoniminiai blokai, pvz., Su atskiromis, nesaugomomis procedūromis. Jei jis naudojamas, jis turi būti pirmas atskiroje byloje.

18) Kiek aktyviklių galima pritaikyti lentelei?

Vienai lentelei galima pritaikyti ne daugiau kaip 12 aktyviklių.

19) Kokia yra SQLCODE ir SQLERRM svarba?

SQLCODE pateikia paskutinės klaidos klaidos skaičiaus vertę, o SQLERRM - paskutinės klaidos pranešimą.

20) Jei atidarytas žymeklis, kaip mes galime rasti PL SQL bloką?

galima naudoti% ISOPEN žymeklio būsenos kintamąjį.

21) Parodykite dvi PL / SQL žymeklio išimtis.

Žymeklis_Jau_atidaryti

Invaid_cursor

22) Kokie operatoriai sprendžia NULL?

NVL konvertuoja NULL į kitą nurodytą vertę.

var: = NVL (var2, „Hi“);

IS NULL ir IS NOT NULL gali būti naudojamas konkrečiai patikrinti, ar kintamojo vertė yra NULL, ar ne.

23) Ar „SQL * Plus“ taip pat turi PL / SQL variklį?

Ne, „SQL * Plus“ nėra įdėtas PL / SQL variklis. Taigi visas PL / SQL kodas siunčiamas tiesiai į duomenų bazės variklį. Tai daug efektyviau, nes kiekvienas teiginys nėra atskirai nuimamas.

24) Kokie paketai prieinami PL SQL kūrėjams?

DBMS_ paketų serijos, pvz., DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25) Paaiškinkite 3 pagrindines trigerio dalis.

  • Suaktyvinantis teiginys ar įvykis.
  • Apribojimas
  • Veiksmas

26) Kokios yra simbolių funkcijos?

INITCAP, UPPER, SUBSTR, LOWER ir LENGTH yra visos simbolių funkcijos. Grupės funkcijos duoda rezultatus pagal eilučių grupes, o ne atskiras eilutes. Jie yra MAX, MIN, AVG, COUNT ir SUM.

27) Paaiškinkite TTITLE ir BTITLE.

TTITLE ir BTITLE komandos, valdančios ataskaitų antraštes ir poraštes.

28) Parodykite PL / SQL žymeklio atributus.

% ISOPEN: tikrina, ar žymeklis atidarytas, ar ne

% ROWCOUNT: atnaujintų, ištrintų ar paimtų eilučių skaičius.

% FOUND: Tikrina, ar žymeklis atnešė kokią nors eilutę. Tiesa, jei pateikiamos eilutės

% NERASTA: Tikrina, ar žymeklis atnešė kokią nors eilutę. Tiesa, jei eilučių negaunama.

29) Kas yra sankirta?

Kirtimas yra dviejų lentelių sandauga ir jame pateikiamos tik atitinkančios eilutės.

30) Kas yra sekos?

Eilės naudojamos sekos numeriams generuoti be užrakinimo. Jo trūkumas yra tas, kad eilės numeris prarandamas, jei operacija grąžinama atgal.

31) Kaip nurodytumėte stulpelių reikšmes PRIEŠ ir PO, kai įterpėte ir ištrynėte aktyviklius?

Naudojant raktinį žodį „new.column name“, aktyvikliai gali nurodyti stulpelių vertes pagal naują kolekciją. Naudodami raktinį žodį „old.column name“, jie gali nurodyti stulpelių vertes pagal seną kolekciją.

32) Kokie yra raktinių žodžių „SYSDATE“ ir „USER“ tikslai?

SYSDATE nurodo dabartinę serverio sistemos datą. Tai pseudo kolona. USER taip pat yra pseudo stulpelis, tačiau nurodo dabartinį vartotoją, prisijungusį prie seanso. Jie naudojami lentelėje vykstantiems pokyčiams stebėti.

33) Kaip ROWID padeda greičiau paleisti užklausą?

ROWID yra loginis eilutės adresas, tai nėra fizinis stulpelis. Ją sudaro duomenų bloko numeris, failo numeris ir duomenų bloko eilutės numeris. Taigi, įvesties / išvesties laikas yra kuo mažesnis gaunant eilutę, todėl gaunama greitesnė užklausa.

34) Kam naudojamos duomenų bazių nuorodos?

Duomenų bazių nuorodos kuriamos siekiant užmegzti ryšį tarp įvairių duomenų bazių ar skirtingų aplinkų, tokių kaip bandymai, kūrimas ir gamyba. Duomenų bazės nuorodos yra tik skaitomos, kad būtų galima pasiekti ir kitą informaciją.

35) Ką daro žymeklio paėmimas?

Gaunant žymeklį, eilutė po eilutės skaitoma Rezultatas.

36) Ką daro žymeklio uždarymas?

Uždarius žymeklį, išvaloma privati ​​SQL sritis ir atkuriama atmintis

37) Paaiškinkite valdymo failo naudojimą.

Tai dvejetainis failas. Joje įrašoma duomenų bazės struktūra. Tai apima kelių žurnalo failų vietas, pavadinimus ir laiko žymes. Jie gali būti saugomi skirtingose ​​vietose, kad būtų lengviau gauti informaciją, jei sugadintas vienas failas.

38) Paaiškinkite nuoseklumą

Nuoseklumas rodo, kad duomenys nebus atspindėti kitiems vartotojams, kol duomenys nebus įvykdyti, taigi išlaikomas nuoseklumas.

39) Skirkite anoniminius blokus ir paprogrames.

Anoniminiai blokai yra neįvardyti blokai, kurie nėra saugomi niekur, o subprogramos yra sudaromos ir saugomos duomenų bazėje. Jie sudaromi vykdymo metu.

40) Skirtumas tarp DECODE ir CASE.

DECODE ir CASE teiginiai yra labai panašūs, tačiau CASE yra išplėstinė DECODE versija. „DECODE“ neleidžia vietoje priimti sprendimų.

pasirinkite dekoduoti (totalal = 12000, 'high', 10000, 'medium') kaip decode_tesr iš smp, kur smpno yra (10,12,14,16);

Šis teiginys pateikia klaidą.

CASE yra tiesiogiai naudojamas PL SQL, bet DECODE PL SQL naudojamas tik per SQL.

41) Paaiškinkite savarankišką sandorį.

Autonominis sandoris yra nepriklausomas pagrindinio arba pagrindinio sandorio sandoris. Jis nėra įdėtas, jei jis yra pradėtas kitu sandoriu.

Yra keletas situacijų, kai reikia naudoti savarankiškas operacijas, pvz., Įvykių registravimą ir auditą.

42) Skirkite SGA nuo PGA.

SGA reiškia sistemos visuotinę sritį, o PGA - programos arba proceso visuotinę sritį. PGA skiriama tik 10% RAM, bet SGA - 40% RAM.

43) Kokia yra „Pre_defined_functions“ vieta.

Jie saugomi standartiniame pakete, pavadintame „Funkcijos, procedūros ir paketai“

44) Paaiškinkite PL SQL polimorfizmą.

Polimorfizmas yra OOP bruožas. Tai galimybė sukurti kintamąjį, objektą ar funkciją su keliomis formomis. PL / SQL palaiko polimorfizmą kaip programos vieneto perkrovą nario funkcijos ar paketo viduje ... Atliekant perkrovą, reikia vengti vienareikšmės logikos.

45) Kokia yra „MERGE“ paskirtis?

MERGE naudojamas sujungti kelis DML sakinius į vieną.

Sintaksė: susilieti į stalo vardą

naudojant (užklausą)

įjungta (prisijungimo sąlyga)

kai tada neprilygo

[įterpti / atnaujinti / ištrinti] komandą

kai tada derėjo

[įterpti / atnaujinti / ištrinti] komandą

46) Ar galima 2 užklausas vienu metu vykdyti paskirstytoje duomenų bazių sistemoje?

Taip, juos galima vykdyti vienu metu. Viena užklausa visada nepriklauso nuo antrosios užklausos paskirstytoje duomenų bazės sistemoje, pagrįsta 2 fazių įsipareigojimu.

47) Paaiškinkite „Raise_application_error“.

Tai yra paketo DBMS_STANDARD procedūra, leidžianti iš duomenų bazės aktyviklio arba saugomos paprogramės išleisti vartotojo nustatytus klaidos pranešimus.

48) Kas yra parametras out, naudojamas įvykiui, nors grąžinimo sakinys taip pat gali būti naudojamas pl / sql?

Išvesties parametrai leidžia daugiau nei vieną reikšmę skambinančioje programoje. Funkcijos Out parametras nerekomenduojamas. Jei reikia kelių verčių, vietoj funkcijų galima naudoti procedūras. Taigi šios procedūros naudojamos Out parametrams vykdyti.

49) Kaip konvertuotumėte datą į Julijaus datos formatą?

Mes galime naudoti J formato eilutę:

SQL> pasirinkite to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') kaip julianą iš dualo;

JULIANAS

50) Paaiškinkite SPOOL

„Sool“ komanda gali atsispausdinti SQL pareiškimų išvestį faile.

ritė / tmp / sql_outtxt

pasirinkite smp_name, smp_id iš smp, kur dept = 'sąskaitos';

ritė išjungta;

51) Paminėkite, iš ko susideda PL / SQL paketas?

PL / SQL paketą sudaro

  • PL / SQL lentelę ir įrašykite TYPE sakinius
  • Procedūros ir funkcijos
  • Žymekliai
  • Kintamieji (lentelės, skaliarai, įrašai ir kt.) Ir konstantos
  • Išimčių pavadinimai ir pragmos, susiejant klaidos numerį su išimtimi
  • Žymekliai

52) Paminėkite, kokie yra PL / SQL paketų pranašumai?

Tai teikia keletą privalumų, tokių kaip

  • Priverstinis informacijos slėpimas: tai suteikia laisvę pasirinkti, ar duomenys bus privatūs, ar vieši
  • Dizainas iš viršaus į apačią: Galite suprojektuoti sąsają su pakete paslėptu kodu, kol dar neįdiegėte patys modulių
  • Objekto patvarumas: Paketo specifikacijoje deklaruoti objektai elgiasi kaip visuotiniai visų programos PL / SQL objektų duomenys. Galite modifikuoti paketą viename modulyje ir tada nurodyti tuos pakeitimus į kitą modulį
  • Objektinis dizainas: Šis paketas leidžia kūrėjams tvirtai kontroliuoti, kaip galima naudoti paketo viduje esančius modulius ir duomenų struktūras
  • Užtikrinti operacijų vientisumą: tai užtikrina operacijų vientisumo lygį
  • Našumo tobulinimas: RDBMS automatiškai stebi visų duomenų bazėje saugomų programos objektų galiojimą ir pagerina paketų našumą.

53) Paminėkite, kokie yra skirtingi PL / SQL kodo atsekimo metodai?

Kodo sekimas yra labai svarbi technika norint įvertinti kodo našumą vykdymo metu. Įvairūs atsekimo metodai apima

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION ir DBMS_MONITOR
  • trcsess ir tkproof komunalinės paslaugos

54) Paminėk, ką daro hierarchinis profilininkas?

Hierarchinis profilio sudarytojas galėtų peržiūrėti PL / SQL skambučius, išskyrus užpildyti spragą tarp spragų ir lūkesčius dėl našumo. Hierarchinio profilio efektyvumas apima

  • Skirtingos SQL ir PL / SQL laiko sąnaudų ataskaitos
  • Ataskaitose skaičiuojami atskiri paprogramių skambučiai, atlikti PL / SQL, ir laikas, praleistas su kiekvienu paprogramės iškvietimu
  • Kelios interaktyvios analizės ataskaitos HTML formatu naudojant komandinės eilutės įrankį
  • Efektyviau nei įprasti profileriai ir kitos sekimo priemonės

55) Paminėk, ką leidžia padaryti PLV ​​msg?

PLV pranešimas jums leidžia

  • Priskirkite atskirą teksto pranešimą nurodytai PL / SQL lentelės eilutei
  • Jis nuskaito pranešimo tekstą pagal skaičių
  • Tai automatiškai pakeičia jūsų pačių pranešimus su standartiniais „Oracle“ klaidų pranešimais su apribojimų perjungikliu
  • Paketiniai pranešimų numeriai ir tekstas iš duomenų bazės lentelės tiesiogiai PLV ​​msg PL / SQL lentelė

56) Paminėkite, ką siūlo PLV (PL / Vision) paketas?

  • Null pakeitimo vertė
  • Teiginių rutinos rinkinys
  • Įvairios komunalinės paslaugos
  • Konstantų rinkinys, naudojamas per visą PL regėjimą
  • Iš anksto nustatyti duomenų tipai
  • 57) Paminėkite, koks yra PLVprs ir PLVprsps naudojimas?
  • PLVprs: Tai yra PL / SQL eilučių analizavimo plėtinys ir tai yra žemiausias eilutės analizavimo funkcijų lygis
  • PLVprsps: Tai aukščiausio lygio paketas, analizuojantis PL / SQL šaltinio kodą į atskirą atomą. Kad darbas būtų atliktas, jis remiasi kitais analizavimo paketais.

58) Paaiškinkite, kaip galite nukopijuoti failą į failo turinį ir failą į PL / SQL lentelę iš anksto PL / SQL?

Naudodami vieną programos iškvietimą - „ fcopy procedure“, galite nukopijuoti visą vieno failo turinį į kitą failą. Norėdami nukopijuoti failo turinį tiesiai į PL / SQL lentelę, galite naudoti programą „ file2pstab“ .

59) Paaiškinkite, kaip iš anksto tvarkoma išimtis PL / SQL?

Išimties atveju PL / SQl tvarkymas suteikia efektyvų PLVexc papildinį. „PLVexc“ palaiko keturis skirtingus išimčių tvarkymo veiksmus.

  • Tęsti apdorojimą
  • Įrašykite ir tęskite
  • Sustabdyti apdorojimą
  • Įrašykite ir sustabdykite apdorojimą

Toms išimtims, kurios pasikartoja, galite naudoti RAISE sakinį.

60) Paminėkite, su kokia problema gali kilti rašant žurnalo informaciją į duomenų bazės lentelę PL / SQL?

Rašant žurnalo informaciją į duomenų bazės lentelę susiduriama su ta problema, kad informacija pasiekiama tik tada, kai duomenų bazei priskiriamos naujos eilutės. Tai gali būti problema, nes toks „PLVlog“ paprastai diegiamas klaidoms stebėti, o daugeliu atvejų dabartinė operacija nepavykdavo arba dėl to reikėdavo grąžinti.

61) Paminėkite, kokia yra funkcija, naudojama perkeliant PL / SQL lentelės žurnalą į duomenų bazės lentelę?

PL / SQL lentelių žurnalui perkelti naudojama duomenų bazės žurnalo lentelės funkcija „PROCEDŪRA ps2db“ .

62) Kai turite naudoti numatytąjį „atgalinį“ išsaugojimą PLVlog?

Numatytasis „grąžinimas į“ „PLVlog“ išsaugojimo tašką naudojamas, kai vartotojai įjungia grąžinimo veiklą ir nepateikė alternatyvaus išsaugojimo taško kvietime „put_line“. Numatytasis išsaugojimo taškas inicijuojamas c c konstanta.

63) Kodėl „PLVtab“ laikomas lengviausiu būdu pasiekti PL / SQL lentelę?

PL / SQL lentelė yra arčiausiai PL / SQL masyvų, o norint pasiekti šią lentelę, pirmiausia reikia deklaruoti lentelės tipą, o tada - pačią PL / SQL lentelę. Tačiau naudodami PLVtab galite išvengti savo PL / SQL lentelės tipo apibrėžimo ir palengvinti prieigą prie PL / SQL duomenų lentelės.

64) Paminėkite, ką PLVtab leidžia jums padaryti, kai rodote PL / SQL lentelių turinį?

„PLVtab“ leidžia atlikti šiuos veiksmus, kai rodote PL / SQL lentelių turinį

  • Rodyti arba nutraukti lentelės antraštę
  • Rodyti arba nutraukti lentelės verčių eilučių numerius
  • Prieš kiekvieną lentelės eilutę rodykite priešdėlį

65) Paaiškinkite, kaip galite išsaugoti arba patalpinti savo pranešimą lentelėje?

Norėdami išsaugoti pranešimą lentelėje, galite tai padaryti dviem būdais

  • Įkelkite atskirus pranešimus su skambučiais į procedūrą add_text
  • Įkelkite pranešimų rinkinius iš duomenų bazės lentelės naudodami procedūrą „ load_from_dbms“

66) Paminėkite, koks yra funkcijos „modulio procedūra“ naudojimas PL / SQL?

"Modulio procedūra" leidžia konvertuoti visas kodo eilutes apibrėžtame programos vienete vienu procedūrų iškvietimu. Yra trys modulių argumentai

  • module_in
  • cor_in
  • Last_module_in

67) Paminėkite, ką PLVcmt ir PLVrb veikia PL / SQL?

PL / Vision siūlo du paketus, kurie padeda valdyti operacijų apdorojimą PL / SQL programoje. Tai yra PLVcmt ir PLVrb.

  • PLVcmt: PLVcmt paketas apima logiką ir sudėtingumą, susijusį su įsipareigojimų apdorojimu
  • PLVrb: jis suteikia programinę sąsają, kad būtų galima atlikti grįžtamąją veiklą PL / SQL