Najpogostejših 65 vprašanj za intervju za PL / SQL & Odgovori

Anonim

Prenesite PDF

1) Kaj je PL SQL?

PL SQL je proceduralni jezik, ki ima interaktivni SQL, pa tudi konstrukcije programskega jezika, kot sta pogojna razvejanost in ponovitev.

2) Ločite med% ROWTYPE in TYPE RECORD.

% ROWTYPE se uporablja, ko poizvedba vrne celo vrstico tabele ali pogleda.

ZAPIS TIPA pa se uporablja, ko poizvedba vrne stolpec različnih tabel ali pogledov.

Npr. TIP r_emp je RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

Kazalec c1 je izbran smpno, odsek od smp;

e_rec c1% VRSTA

3) Pojasnite uporabo kurzorja.

Kazalec je imenovano zasebno območje v SQL, iz katerega je mogoče dostopati do informacij. Vsako vrstico morajo obdelati posebej za poizvedbe, ki vrnejo več vrstic.

4) Prikaži kodo kazalca za zanko.

Kazalec implicitno izjavi% ROWTYPE kot indeks zanke. Nato odpre kurzor, dobi polja vrednosti iz aktivnega nabora v poljih zapisa in se zapre, ko so vsi zapisi obdelani.

Npr. ZA smp_rec V zanki C1

seštevek = seštevek + smp_recsal;

ENDLOOP;

5) Pojasnite uporabo sprožilca baze podatkov.

Programska enota PL / SQL, povezana z določeno tabelo baze podatkov, se imenuje sprožilec baze podatkov. Uporablja se za:

1) Spremembe revizijskih podatkov.

2) Pregledno beležite dogodke.

3) Uveljaviti zapletena poslovna pravila.

4) Vzdrževanje tabel kopij

5) Izvedite vrednosti stolpcev

6) Izvedite kompleksna varnostna pooblastila

6) Kateri sta dve vrsti izjem.

Napaka pri delu z delom bloka PL / SQL se imenuje izjema. Imajo dve vrsti: user_defined in predefined.

7) Pokažite nekaj vnaprej določenih izjem.

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

itd.

8) Pojasnite napako Raise_application_er.

Gre za postopek paketa DBMS_STANDARD, ki omogoča izdajo uporabniško določenih sporočil o napakah iz sprožilca baze podatkov ali shranjenega podprograma.

9) Pokažite, kako se funkcije in postopki kličejo v bloku PL SQL.

Funkcija se pokliče kot del izraza.

skupaj: = izračunaj_sal ('b644')

Postopek se v PL / SQL pokliče kot stavek.

izračunaj_bonus ('b644');

10) Pojasnite dve navidezni tabeli, ki sta na voljo v času izvajanja sprožilca baze podatkov.

Stolpci tabele se imenujejo THEN.column_name in NOW.column_name.

Za sprožilce, povezane z INSERT, so na voljo samo vrednosti NOW.column_name.

Za sprožilce, povezane z DELETE, so na voljo samo vrednosti THEN.column_name.

Za sprožilce, povezane z UPDATE, sta na voljo oba stolpca tabele.

11) Katera pravila se uporabljajo za NULL med primerjavo?

1) NULL ni nikoli TRUE ali FALSE

2) NULL ne more biti enak ali neenak drugim vrednostim

3) Če je vrednost v izrazu NULL, potem izraz sam izračuna NULL, razen za operater združevanja (||)

12) Kako je sestavljen postopek PL SQL?

Proces prevajanja vključuje postopke preverjanja skladnje, vezave in generiranja p-kode.

Preverjanje sintakse preverja kode PL SQL za napake pri prevajanju. Ko so vse napake odpravljene, se spremenljivkam, ki vsebujejo podatke, dodeli naslov za shranjevanje. Imenuje se Vezava. P-koda je seznam navodil za mehanizem PL SQL. Koda P se shrani v zbirko podatkov za imenovane bloke in se uporabi ob naslednjem izvajanju.

13) Razlikovanje med sintaksnimi in napakami med izvajanjem.

Sintaksno napako lahko prevajalnik PL / SQL zlahka odkrije. Na primer, napačno črkovanje.

Napaka med izvajanjem se obravnava s pomočjo razdelka za obdelavo izjem v bloku PL / SQL. Na primer, stavek SELECT INTO, ki ne vrne nobene vrstice.

14) Pojasnite Obveznost, Povračilo in Shranjevanje.

Za izjavo COMMIT velja naslednje:

  • Drugi uporabniki lahko vidijo spremembe podatkov, ki jih naredi transakcija.
  • Ključavnice, pridobljene s transakcijo, se sprostijo.
  • Delo, opravljeno s transakcijo, postane trajno.

Stavek ROLLBACK se izda, ko se transakcija konča, in velja naslednje.

  • Delo, opravljeno v prehodu, je razveljavljeno, kot da nikoli ni bilo izdano.
  • Vse ključavnice, pridobljene s transakcijo, se sprostijo.

Razveljavi vse delo, ki ga je uporabnik opravil v transakciji. S SAVEPOINT je mogoče razveljaviti le del transakcije.

15) Določite implicitne in eksplicitne kazalce.

Kazalec je privzeto impliciten. Uporabnik ne more nadzorovati ali obdelovati informacij v tej kazalki.

Če poizvedba vrne več vrstic podatkov, program definira eksplicitni kazalec. To aplikaciji omogoča zaporedno obdelavo vsake vrstice, ko jo kazalec vrne.

16) Pojasnite napako mutirajoče tabele.

Pojavi se, ko sprožilec poskuša posodobiti vrstico, ki jo trenutno uporablja. Popravi se z uporabo pogledov ali začasnih tabel, zato baza podatkov izbere enega in posodobi drugega.

17) Kdaj je potrebna izjava izjave?

Stavek DECLARE uporabljajo anonimni bloki PL SQL, na primer s samostojnimi, neshranjenimi postopki. Če se uporablja, mora biti na prvem mestu v samostojni datoteki.

18) Koliko sprožilcev lahko uporabite za mizo?

Za eno tabelo je mogoče uporabiti največ 12 sprožilcev.

19) Kakšen je pomen SQLCODE in SQLERRM?

SQLCODE vrne vrednost števila napak za zadnjo napako, medtem ko SQLERRM vrne sporočilo za zadnjo napako.

20) Če je kurzor odprt, kako ga najdemo v bloku PL SQL?

lahko uporabite spremenljivko stanja kurzorja% ISOPEN.

21) Pokažite dve izjemi kurzorja PL / SQL.

Kazalec_Več_Odprto

Invaid_cursor

22) Kateri operaterji se ukvarjajo z NULL?

NVL pretvori NULL v drugo določeno vrednost.

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

IS NULL in IS NOT NULL lahko uporabite za natančno preverjanje, ali je vrednost spremenljivke NULL ali ne.

23) Ali ima SQL * Plus tudi PL / SQL Engine?

Ne, SQL * Plus nima vgrajenega mehanizma PL / SQL. Tako se vsa koda PL / SQL pošlje neposredno v mehanizem baze podatkov. Je veliko bolj učinkovit, saj se vsaka izjava ne odvzame posamezno.

24) Kateri paketi so na voljo razvijalcem PL SQL?

Serija paketov DBMS_, kot so DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25) Pojasnite 3 osnovne dele sprožilca.

  • Izjava ali dogodek za sprožitev.
  • Omejitev
  • Akcija

26) Kaj so znakovne funkcije?

INITCAP, UPPER, SUBSTR, LOWER in LENGTH so vse funkcije znakov. Funkcije skupin dajejo rezultate na podlagi skupin vrstic, v nasprotju s posameznimi vrsticami. So MAX, MIN, AVG, COUNT in SUM.

27) Pojasnite TITLE in BTITLE.

Ukaza TTITLE in BTITLE, ki nadzorujeta glave in noge poročila.

28) Prikažite atribute kurzorja PL / SQL.

% ISOPEN: Preveri, ali je kazalec odprt ali ne

% ROWCOUNT: število vrstic, ki se posodobijo, izbrišejo ali pridobijo.

% FOUND: Preveri, ali je kazalka prinesla katero koli vrstico. Res je, če so vrstice pridobljene

% NOT FOUND: Preveri, ali je kazalka prinesla katero koli vrstico. Res je, če vrstice niso pridobljene.

29) Kaj je križišče?

Intersect je produkt dveh tabel in vsebuje samo ujemajoče se vrstice.

30) Kaj so zaporedja?

Zaporedja se uporabljajo za generiranje zaporednih številk brez dodatnih stroškov zaklepanja. Njegova pomanjkljivost je, da se zaporedna številka izgubi, če se transakcija premakne nazaj.

31) Kako bi se sklicevali na vrednosti stolpcev PRED in PO, ko ste vstavili in izbrisali sprožilce?

S pomočjo ključne besede "ime novega stolpca" se sprožilci lahko sklicujejo na vrednosti stolpcev v novi zbirki. Z uporabo ključne besede "old.column name" se lahko sklicujejo na vrednosti stolpcev po stari zbirki.

32) Kakšna je uporaba ključnih besed SYSDATE in USER?

SYSDATE se nanaša na trenutni sistemski datum strežnika. To je psevdo stolpec. USER je tudi psevdo stolpec, vendar se nanaša na trenutnega uporabnika, prijavljenega v sejo. Uporabljajo se za spremljanje sprememb v tabeli.

33) Kako ROWID pomaga pri hitrejšem izvajanju poizvedbe?

ROWID je logični naslov vrstice in ni fizični stolpec. Sestavlja številko podatkovnega bloka, številko datoteke in številko vrstice v podatkovnem bloku. Tako je čas I / O minimiziran pri pridobivanju vrstice in povzroči hitrejšo poizvedbo.

34) Za kaj se uporabljajo povezave do zbirke podatkov?

Povezave do zbirke podatkov se ustvarijo, da tvorijo komunikacijo med različnimi bazami podatkov ali različnimi okolji, kot so testiranje, razvoj in izdelava. Povezave do baze podatkov so samo za branje, da lahko dostopate tudi do drugih informacij.

35) Kaj naredi pridobivanje kurzorja?

Pri pridobivanju kurzorja se prebere Rezultat Nastavi vrstico za vrstico.

36) Kaj naredi zapiranje kurzorja?

Zapiranje kurzorja počisti zasebno področje SQL in razdeli pomnilnik

37) Pojasnite uporabo nadzorne datoteke.

To je binarna datoteka. Zapisuje strukturo baze podatkov. Vključuje lokacije več dnevniških datotek, imena in časovne žige. Shranijo jih lahko na različnih lokacijah, da pomagajo pri pridobivanju informacij, če se ena datoteka poškoduje.

38) Pojasnite doslednost

Doslednost kaže, da se podatki ne bodo odražali drugim uporabnikom, dokler se podatki ne sprejmejo, tako da se ohrani skladnost.

39) Razlika med anonimnimi bloki in podprogrami.

Anonimni bloki so neimenovani bloki, ki niso nikjer shranjeni, medtem ko se podprogrami prevajajo in shranjujejo v zbirko podatkov. Zbrani so med izvajanjem.

40) Razlika med DECODE in CASE.

Izjavi DECODE in CASE sta si zelo podobni, vendar je CASE razširjena različica DECODE. DECODE na svojem mestu ne dovoljuje sprejemanja odločitev.

izberite decode (totalsal = 12000, 'high', 10000, 'medium') kot decode_tesr iz smp kjer smpno v (10,12,14,16);

Ta stavek vrne napako.

CASE se neposredno uporablja v PL SQL, DECODE pa v PL SQL prek SQL.

41) Pojasnite avtonomno transakcijo.

Avtonomna transakcija je neodvisna transakcija glavne ali nadrejene transakcije. Ni ugnezden, če ga zažene druga transakcija.

Za uporabo avtonomnih transakcij, kot sta beleženje in revizija dogodkov, obstaja več primerov.

42) Razlikovanje med SGA in PGA.

SGA pomeni sistemsko območje sistema, medtem ko PGA pomeni globalno območje programa ali procesa. PGA ima samo 10% velikosti RAM-a, SGA pa 40% RAM-a.

43) Na kakšnem mestu so vnaprej določene_funkcije.

Shranjeni so v standardni paket, imenovan "Funkcije, postopki in paketi"

44) Pojasnite polimorfizem v PL SQL.

Polimorfizem je značilnost OOP. To je sposobnost ustvarjanja spremenljivke, predmeta ali funkcije z več oblikami. PL / SQL podpira polimorfizem v obliki preobremenitve programske enote znotraj funkcije ali paketa člana ... Med preobremenitvijo se je treba izogibati nedvoumni logiki.

45) Za kaj se uporablja MERGE?

MERGE se uporablja za združevanje več stavkov DML v enega.

Sintaksa: združitev v ime tabele

z uporabo (poizvedba)

vklopljeno (pogoj za pridružitev)

ko se takrat ne ujema

ukaz [vstavi / posodobi / izbriši]

ko se potem ujema

ukaz [vstavi / posodobi / izbriši]

46) Ali je mogoče v sistemu porazdeljenih baz podatkov hkrati izvajati 2 poizvedbi?

Da, lahko se izvajajo hkrati. Ena poizvedba je vedno neodvisna od druge poizvedbe v sistemu porazdeljene baze podatkov, ki temelji na dvofaznem predavanju.

47) Pojasnite napako Raise_application_er.

Gre za postopek paketa DBMS_STANDARD, ki omogoča izdajanje sporočil o napakah, ki jih določi uporabnik, iz sprožilca baze podatkov ali shranjenega podprograma.

48) Kateri parameter out se uporablja za celo izjavo o vrnitvi, ki se lahko uporablja tudi v pl / sql?

Izhodni parametri omogočajo več kot eno vrednost v klicnem programu. Parameter izhod v funkcijah ni priporočljiv. Namesto funkcij se lahko uporabljajo postopki, če je potrebno več vrednosti. Tako se ti postopki uporabljajo za izvajanje parametrov Out.

49) Kako pretvorite datum v julijansko obliko zapisa datuma?

Lahko uporabimo niz oblike J:

SQL> izberite to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') kot julian iz dual;

JULIJAN

50) Razloži SPOOL

Ukaz Spool lahko v datoteki natisne izpise stavkov sql.

spool / tmp / sql_outtxt

izberite smp_name, smp_id iz smp kjer je dept = 'računi';

tuljava off;

51) Omenite, iz česa je paket PL / SQL?

Paket PL / SQL je sestavljen iz

  • PL / SQL tabela in zapis stavkov TYPE
  • Postopki in funkcije
  • Kazalke
  • Spremenljivke (tabele, skalarji, zapisi itd.) In konstante
  • Imena izjem in pragme za povezovanje številke napake z izjemo
  • Kazalke

52) Omenite, kakšne so prednosti paketov PL / SQL?

Zagotavlja več ugodnosti, kot so

  • Prisilno skrivanje informacij: ponuja svobodo pri izbiri, ali naj bodo podatki zasebni ali javni
  • Dizajn od zgoraj navzdol: Vmesnik kode, skrite v paketu, lahko oblikujete, preden ste dejansko sami implementirali module
  • Vztrajnost objekta: Objekti, deklarirani v specifikaciji paketa, se obnašajo kot globalni podatki za vse PL / SQL predmete v aplikaciji. Paket lahko spremenite v enem modulu in nato te spremembe navedete na drugem modulu
  • Objektno usmerjeno oblikovanje: Paket razvijalcem daje močan nadzor nad tem, kako je mogoče uporabiti module in podatkovne strukture znotraj paketa
  • Zagotavljanje integritete transakcij: zagotavlja raven integritete transakcije
  • Izboljšanje učinkovitosti: RDBMS samodejno sledi veljavnosti vseh programskih objektov, shranjenih v zbirki podatkov, in izboljša zmogljivost paketov.

53) Omenite, katere so različne metode za sledenje kode PL / SQL?

Koda za sledenje je ključna tehnika za merjenje učinkovitosti kode med izvajanjem. Vključujejo različne metode sledenja

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION in DBMS_MONITOR
  • pripomočki trcsess in tkproof

54) Omenite, kaj počne hierarhični profiler?

Hierarhični profiler lahko profilira klice, opravljene v PL / SQL, razen zapolnitve vrzeli med vrzelmi in pričakovanji sledenja učinkovitosti. Učinkovitost hierarhičnega profilatorja vključuje

  • Ločeno poročanje o porabi časa SQL in PL / SQL
  • Poročila štejejo različne klice podprogramov, opravljene v PL / SQL, in čas, porabljen za vsak klic podprograma
  • Več poročil o interaktivni analitiki v obliki HTML z uporabo pripomočka ukazne vrstice
  • Učinkovitejši od običajnih profilov in drugih pripomočkov za sledenje

55) Omenite, kaj vam omogoča sporočilo PLV?

Sporočilo PLV vam omogoča

  • Določite posamezno besedilno sporočilo določeni vrstici v tabeli PL / SQL
  • Besedilo sporočila pridobi po številki
  • Samodejno nadomesti vaša lastna sporočila za običajna sporočila o napakah Oracle z omejevalnim preklopom
  • Številke sporočil o paketnem nalaganju in besedilo iz tabele zbirke podatkov neposredno PLV msg PL / SQL tabela

56) Omenite, kaj ponuja paket PLV (PL / Vision)?

  • Ničelna nadomestitvena vrednost
  • Nabor potrditvenih rutin
  • Razne pripomočke
  • Nabor konstant, ki se uporabljajo v celotni viziji PL
  • Vnaprej določeni tipi podatkov
  • 57) Omenite, kakšna je uporaba PLVprs in PLVprsps?
  • PLVprs: je razširitev za razčlenjevanje nizov za PL / SQL in je najnižja raven funkcije razčlenjevanja nizov
  • PLVprsps: To je paket na najvišji ravni za razčlenitev izvorne kode PL / SQL v ločene atomske elemente . Za delo se opira na druge razčlenjevalne pakete.

58) Pojasnite, kako lahko kopirate datoteko v njeno vsebino in datoteko v PL / SQL tabelo vnaprej PL / SQL?

Z enim programskim klicem - " fcopy procedure" lahko kopirate celotno vsebino ene datoteke v drugo. Medtem ko kopirate vsebino datoteke neposredno v tabelo PL / SQL, lahko uporabite program " file2pstab" .

59) Pojasnite, kako se obravnava izjeme vnaprej PL / SQL?

Za ravnanje z izjemami PL / SQl ponuja učinkovit vtičnik PLVexc. PLVexc podpira štiri različna dejanja ravnanja z izjemami.

  • Nadaljujte z obdelavo
  • Posnemite in nato nadaljujte
  • Ustavitev obdelave
  • Snemajte in nato ustavite obdelavo

Za tiste izjeme, ki se ponovijo, lahko uporabite stavek RAISE.

60) Omenite, s katero težavo bi se lahko soočili med zapisovanjem podatkov dnevnika v tabelo baz podatkov v PL / SQL?

Med zapisovanjem informacij dnevnika v tabelo zbirke podatkov je težava v tem, da so informacije na voljo šele, ko so nove vrstice dodeljene zbirki podatkov. To bi lahko bila težava, saj je takšen PLVlog običajno uveden za sledenje napakam in v mnogih takih primerih trenutna transakcija ne bi uspela ali bi drugače potrebovala povratno vrnitev.

61) Omenite, kakšna je funkcija, ki se uporablja za prenos dnevnika tabel PL / SQL v tabelo baze podatkov?

Za prenos dnevnika tabele PL / SQL se uporablja funkcija tabele dnevnika baze podatkov "PROCEDURE ps2db" .

62) Kdaj morate uporabiti privzeto točko shranitve PLVloga?

Privzeta točka shranjevanja "rollback to" PLVlog se uporablja, ko so uporabniki vklopili dejavnost povratka in v klicu put_line niso zagotovili nadomestne točke shranjevanja. Privzeta točka shranjevanja se inicializira na c none konstanto.

63) Zakaj PLVtab velja za najlažji način dostopa do tabele PL / SQL?

Tabela PL / SQL je najbližja matrikam v PL / SQL, in če želite dostopati do te tabele, morate najprej prijaviti vrsto tabele, nato pa še samo tabelo PL / SQL. Toda z uporabo PLVtab se lahko izognete opredelitvi lastne vrste tabele PL / SQL in olajšate dostop do podatkovne tabele PL / SQL.

64) Omenite, kaj vam PLVtab omogoča, ko prikazujete vsebino tabel PL / SQL?

PLVtab vam omogoča, da med prikazom vsebine tabel PL / SQL naredite naslednje

  • Prikažite ali potisnite glavo tabele
  • Prikažite ali potisnite številke vrstic za vrednosti tabele
  • Pred vsako vrstico tabele prikažite predpono

65) Pojasnite, kako lahko shranite ali postavite sporočilo v tabelo?

Če želite shraniti sporočilo v tabelo, lahko to storite na dva načina

  • Nalaganje posameznih sporočil s klici na add_text postopku
  • S postopkom load_from_dbms naložite nabore sporočil iz tabele baze podatkov

66) Omenite, kakšna je uporaba funkcije "modularni postopek" v PL / SQL?

"Modulni postopek" omogoča pretvorbo vseh vrstic kode v določeno programsko enoto z enim klicem postopka. Za module obstajajo trije argumenti

  • module_in
  • cor_in
  • Last_module_in

67) Omenite, kaj PLVcmt in PLVrb počneta v PL / SQL?

PL / Vision ponuja dva paketa, ki vam pomagata upravljati obdelavo transakcij v aplikaciji PL / SQL. To je PLVcmt in PLVrb.

  • PLVcmt: paket PLVcmt zajema logiko in zapletenost pri obravnavi obdelave predaj
  • PLVrb: Zagotavlja programski vmesnik za vrnitev dejavnosti v PL / SQL