30 most important pl sql interview questions
Najlepšie otázky týkajúce sa rozhovorov s PL / SQL s príkladmi, ktoré vám pomôžu pripraviť sa na nadchádzajúci rozhovor:
Čo je to PL / SQL?
PL / SQL (Procedural Language / SQL) je v podstate procedurálne rozšírenie Oracle - SQL. PL / SQL pomáha užívateľovi vyvíjať zložité databázové aplikácie pomocou riadiacich štruktúr, postupov, funkcií, modulov atď.
Tento článok bude pojednávať o najdôležitejších otázkach a odpovediach na pohovory s PL / SQL.
Dotazy a odpovede na pohovor s PL / SQL
Začnime!!
Otázka 1) Diferencovať PL / SQL a SQL?
Odpoveď: Rozdiel medzi SQL a PL / SQL možno kategorizovať nasledovne:
SQL | PL / SQL |
---|---|
SQL je prirodzený jazyk, ktorý je veľmi užitočný pre interaktívne spracovanie. | PL / SQL je procedurálne rozšírenie Oracle - SQL. |
SQL neponúka žiadne procedurálne možnosti, ako je testovanie podmienok, opakovanie. | PL / SQL podporuje procedurálne schopnosti a tiež vysokojazyčné funkcie, ako sú podmienené príkazy, opakovacie príkazy atď. |
Všetky príkazy SQL vykonáva databázový server po jednom, čo je časovo náročný proces. | Príkazy PL / SQL odosielajú celý blok výpisov súčasne na databázový server, čím sa sieťová prevádzka výrazne zníži. |
V SQL nie sú žiadne postupy na spracovanie chýb. | PL / SQL podporuje prispôsobené spracovanie chýb. |
Otázka č. 2) Chcete získať charakteristiky PL / SQL?
Odpoveď:
Charakteristika PL / SQL je nasledovná:
- PL / SQL umožňuje prístup a zdieľanie rovnakých podprogramov viacerými aplikáciami.
- Je známy prenosnosťou kódu, pretože kód je možné spustiť v ľubovoľnom operačnom systéme za predpokladu, že je v ňom načítaný program Oracle.
- Pomocou PL / SQL môžu používatelia písať svoje vlastné prispôsobené rutiny spracovania chýb.
- Vylepšený výkon transakcií vďaka integrácii do dátového slovníka Oracle.
Otázka 3) Aké sú dátové typy dostupné v PL / SQL?
Odpoveď: Dátové typy definujú spôsoby identifikácie typu údajov a ich súvisiacich operácií.
Existujú 4 typy preddefinovaných typov údajov vysvetlené takto:
- Skalárne dátové typy: Skalárny údajový typ je atómový údajový typ, ktorý nemá žiadne vnútorné komponenty.
- Napríklad
- CHAR (rozsah hodnot znakov s pevnou dĺžkou od 1 do 32 767 znakov)
- VARCHAR2 (rozsah hodnot znakov s premenlivou dĺžkou od 1 do 32 767 znakov)
- ČÍSLO (pevné desatinné čísla, plávajúce desatinné čísla alebo celé čísla)
- BOOLEAN (logický údajový typ pre hodnoty TRUE FALSE alebo NULL)
- DATE (ukladá informácie o dátume a čase)
- LONG (znakové údaje s premenlivou dĺžkou)
- Zložené dátové typy: Kompozitný dátový typ je zložený z ďalších dátových typov a vnútorných komponentov, ktoré možno ľahko použiť a manipulovať s nimi. Napríklad, ZÁZNAM, TABUĽKA a VARRAY.
- Referenčné typy údajov: Referenčný údajový typ obsahuje hodnoty, ktoré sa nazývajú ukazovatele, ktoré sú určené na iné položky programu alebo údajové položky. Napríklad, REF KURZOR.
- Dátové typy pre veľké objekty: Dátový typ veľkého objektu obsahuje hodnoty, ktoré sa nazývajú lokátory a ktoré určujú umiestnenie veľkých objektov (napríklad videoklipov, grafických obrázkov atď.) Uložených mimo riadok.
- Napríklad
- BFILE (binárny súbor)
- BLOB (binárny veľký objekt)
- CLOB (Veľký objekt so znakmi)
- NCLOB (veľký objekt typu NCHAR)
Odporúčané čítanie = >> Dátové typy PL SQL
Otázka č. 4) Vysvetlite na príklade účel dátových typov% TYPE a% ROWTYPE?
Odpoveď: PL / SQL používa na ukotvenie atribút deklarácie% TYPE. Tento atribút poskytuje údajový typ premennej, konštanty alebo stĺpca. Atribút% TYPE je užitočný pri deklarovaní premennej, ktorá má rovnaký dátový typ ako stĺpec tabuľky.
Napríklad, premenná m_empno má rovnaký dátový typ a veľkosť ako stĺpec empno v tabuľke emp.
m_empno emp.empno%TYPE;
Atribút% ROWTYPE sa používa na deklaráciu premennej ako záznamu, ktorý má rovnakú štruktúru ako riadok v tabuľke. Riadok je definovaný ako záznam a jeho polia majú rovnaké názvy a typy údajov ako stĺpce v tabuľke alebo zobrazení.
Napríklad:
dept_rec dept%ROWTYPE;
Toto deklaruje záznam, ktorý dokáže uložiť celý riadok pre tabuľku DEPT.
Otázka č. 5) Čo rozumiete pod balíčkami PL / SQL?
Odpoveď: Balíky PL / SQL sú objekty schém, ktoré zoskupujú funkcie, uložené procedúry, kurzory a premenné na jednom mieste.
Balíky majú 2 povinné časti:
- Špecifikácia balenia
- Telo balenia
Otázka č. 6) Čo rozumiete pod kurzormi PL / SQL?
Odpoveď: PL / SQL vyžaduje špeciálnu schopnosť načítať a spracovať viac ako jeden riadok a tento prostriedok je známy ako kurzory. Kurzor je ukazovateľ na kontextovú oblasť, čo je oblasť pamäte obsahujúca príkazy SQL a informácie na spracovanie príkazov.
Kurzor PL / SQL je v zásade mechanizmus, na základe ktorého sa vyberie viac riadkov údajov z databázy a potom sa každý riadok jednotlivo spracuje vo vnútri programu.
Otázka č. 7) Vysvetlite typy kurzorov.
ako používať server založenia tímu
Odpoveď: Existujú dva typy kurzorov.
Vysvetľujú sa takto:
a) Explicitné kurzory: Pre dotazy, ktoré vracajú viac ako jeden riadok, programátor deklaruje a pomenuje explicitný kurzor. Aby bolo možné v PL / SQL použiť explicitný kurzor, nasleduje 4 kroky
- Vyhláste kurzor
Syntax: KURZOR je
Príkaz SELECT;
Tu je kurzorom priradený názov a príkaz SELECT dotaz, ktorý vracia riadky do aktívnej množiny kurzorov.
- Otvorte kurzor
Syntax: OTVORENÉ ;
Kde, je názov predtým definovaného kurzora.
- Načítajte riadky z kurzora
Syntax: NAČÍTAJTE DO;
Tu sa odkazuje na názov predtým definovaného kurzora, z ktorého sa načítajú riadky.
predstavuje zoznam premenných, ktoré dostanú načítané údaje.
- Zatvára sa kurzor
Syntax: ZAVRIEŤ ;
Tu je názov zatvoreného kurzora.
b) Implicitné kurzory: Keď sa vykoná akýkoľvek príkaz SQL, PL / SQL automaticky vytvorí kurzor bez definovania, ktoré sú známe ako implicitné kurzory.
Pre nasledujúce výroky PL / SQL využíva implicitné kurzory
- VLOŽTE
- AKTUALIZÁCIA
- ODSTRÁNIŤ
- SELECT (dotazy, ktoré vracajú presne jeden riadok)
Otázka č. 8) Kedy použijeme spúšťače?
prevodník z youtube na mp3 s editorom značiek
Odpoveď: Slovo „spúšťač“ znamená aktivovať. V PL / SQL je spúšťačom uložená procedúra, ktorá definuje akciu vykonanú databázou pri vykonaní udalosti súvisiacej s databázou.
Spúšťače sú potrebné hlavne na nasledujúce účely:
- Zachovať komplexné obmedzenia integrity
- Informácie do tabuľky auditu zaznamenávaním zmien
- Signalizácia ďalších akcií programu, keď sa vykonajú zmeny v tabuľke
- Presadzovanie zložitých obchodných pravidiel
- Predchádzanie neplatným transakciám
Otázka č. 9) Vysvetlite rozdiel vo vykonávaní spúšťačov a uložených procedúr?
Odpoveď: Uložená procedúra sa vykoná výslovne vydaním príkazu volania procedúry z iného bloku prostredníctvom volania procedúry s argumentmi.
Spúšťač sa vykoná implicitne vždy, keď dôjde k akejkoľvek spúšťacej udalosti, ako je výskyt príkazov DML.
Otázka č. 10) Vysvetlite rozdiel medzi spúšťačmi a obmedzeniami?
Odpoveď: Spúšťače sa líšia od obmedzení nasledujúcimi spôsobmi:
Spúšťače | Obmedzenia |
---|---|
Ovplyvní iba tie riadky pridané po povolení spúšťača. | Ovplyvniť všetky riadky tabuľky vrátane tých, ktoré už existujú, keď je povolené obmedzenie. |
Spúšťače sa používajú na implementáciu zložitých obchodných pravidiel, ktoré sa nedajú implementovať pomocou obmedzení integrity. | Obmedzenia udržiavajú integritu databázy. |
Otázka č. 11) Čo je blok PL / SQL?
Odpoveď: V PL / SQL sú príkazy zoskupené do jednotiek nazývaných Bloky. Bloky PL / SQL môžu obsahovať konštanty, premenné, príkazy SQL, slučky, podmienené príkazy, spracovanie výnimiek. Bloky môžu tiež vytvoriť procedúru, funkciu alebo balík.
Široko, Bloky PL / SQL sú dva typy:
i) Anonymné bloky: Bloky PL / SQL bez hlavičky sú známe ako anonymné bloky. Tieto bloky netvoria telo procedúry, funkcie alebo spúšťača.
Príklad:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
ii) Pomenované bloky: Bloky PL / SQL so záhlavím alebo štítkami sú známe ako pomenované bloky. Pomenované bloky môžu byť buď podprogramy (procedúry, funkcie, balíčky) alebo spúšťače.
Odporúčané čítanie = >> Procedúry a funkcie PL SQL
Príklad:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
Otázka č. 12) Rozlišovať medzi syntaktickými a runtime chybami?
Odpoveď:
Syntaxové chyby sú tie, ktoré je možné ľahko identifikovať pomocou kompilátora PL / SQL. Tieto chyby môžu byť pravopisnou chybou atď.
Chyby za behu sú chyby v bloku PL / SQL, pre ktoré má byť na spracovanie chýb zahrnutá sekcia spracovania výnimiek. Tieto chyby môžu byť príkazom SELECT INTO, ktorý nevracia žiadne riadky.
Otázka 13) Čo sú COMMIT, ROLLBACK a SAVEPOINT?
Odpoveď: COMMIT, SAVEPOINT a ROLLBACK sú tri špecifikácie transakcií dostupné v PL / SQL.
Vyhlásenie COMMIT: Keď sa vykonáva operácia DML, manipuluje iba s údajmi vo vyrovnávacej pamäti databázy a databáza zostane týmito zmenami nedotknutá. Aby sme tieto zmeny transakcií uložili / uložili do databázy, musíme transakciu POTVRDIŤ. Transakcia COMMIT uloží všetky zostávajúce zmeny od posledného COMMIT a nasledujúceho procesu
- Postihnuté zámky riadkov sa uvoľnia
- Transakcia bola označená ako dokončená
- Podrobnosti transakcie sú uložené v dátovom slovníku.
Syntax: POTVRDIŤ;
Vyhlásenie ROLLBACK: Ak chceme vrátiť späť alebo vymazať všetky zmeny, ktoré sa zatiaľ v aktuálnej transakcii vyskytli, požadujeme vrátenie transakcie späť. Inými slovami, ROLLBACK vymaže všetky zostávajúce zmeny od posledného COMMIT alebo ROLLBACK.
Syntax úplného vrátenia transakcie:
ROLLBACK;
Vyhlásenie SAVEPOINT: Príkaz SAVEPOINT dáva meno a označuje bod v spracovaní aktuálnej transakcie. Zmeny a zámky, ktoré nastali pred SAVEPOINT v transakcii, sa zachovajú, zatiaľ čo zmeny, ktoré sa vyskytnú po SAVEPOINT, sa uvoľnia.
Syntax:
SAVEPOINT;
Otázka č. 14) Čo je mutujúca tabuľka a obmedzujúca tabuľka?
Odpoveď: Tabuľka, ktorá je momentálne upravovaná príkazom DML, ako napríklad definovanie spúšťačov v tabuľke, je známa ako Mutačná tabuľka .
Tabuľka, z ktorej bude pravdepodobne potrebné načítať pre obmedzenie referenčnej integrity, je známa ako obmedzujúca tabuľka .
Otázka č. 15) Čo sú skutočné parametre a formálne parametre?
Odpoveď: Premenné alebo výraz označovaný ako parametre, ktoré sa vyskytujú vo vyhlásení o volaní procedúry, sú známe ako Skutočné parametre .
Napríklad: raise_sal (emp_num, zásluhy + suma);
Tu vo vyššie uvedenom príklade sú emp_num a suma dva skutočné parametre.
Premenné, ktoré sú deklarované v hlavičke procedúry a na ktoré sa odkazuje v tele procedúry, sa nazývajú ako Formálne parametre .
Napríklad:
POSTUP raise_sal (emp_id INTEGER) JE
cur_sal SKUTOČNÉ:
……… ..
ZAČAŤ
ZVOLTE sal do cur_sal OD emp kde KDE empno = emp_id;
…….
END raise_sal;
V tomto príklade vyššie slúži emp_id ako formálny parameter.
Otázka č. 16) Aký je rozdiel medzi príkazmi ROLLBACK a ROLLBACK TO?
Odpoveď: Transakcia je úplne ukončená po vyhlásení ROLLBACK, t. J. Príkaz ROLLBACK úplne zruší transakciu a uvoľní všetky zámky.
Na druhej strane, transakcia je stále aktívna a beží po príkaze ROLLBACK TO, pretože vracia iba časť transakcie až do zadaného SAVEPOINT.
Otázka 17) Napíšte skript PL / SQL a zobrazte nasledujúcu sériu čísel: 99,96,93 …… 9,6,3?
Odpoveď
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; /
Otázka č. 18) Aké sú 3 režimy parametrov?
Odpoveď: 3 režimy parametra sú IN, OUT, IN OUT.
Môžu byť vysvetlené nasledovne:
- V parametroch: Parametre IN umožňujú odovzdať hodnoty volanému postupu a je možné ich inicializovať na predvolené hodnoty. Parametre IN fungujú ako konštanta a nemožno im priradiť žiadnu hodnotu.
- OUT parametre: Parametre OUT vracajú volajúcemu hodnotu a musia byť zadané. Parametre OUT fungujú ako neinicializovaná premenná a nemožno ich použiť vo výraze.
- Parametre IN OUT: Parametre IN OUT odovzdajú počiatočné hodnoty procedúre a vrátia aktualizované hodnoty volajúcemu. Parametre IN OUT fungujú ako inicializovaná premenná a mala by im byť priradená hodnota.
Otázka č. 19) Prečo je% ISOPEN vždy implicitný pre implicitný kurzor?
Odpoveď: Implicitný kurzor, atribút SQL% ISOPEN, je vždy nepravdivý, pretože implicitný kurzor je otvorený pre príkaz DML a je zatvorený ihneď po vykonaní príkazu DML.
Otázka 20) Keď sa vykoná príkaz DML, v ktorom atribúte kurzora sa výsledok výpisu uloží?
Odpoveď: Výsledok výpisu sa uloží do 4 atribútov kurzora.
Sú to:
- SQL% ZISTENÉ
- SQL% NOTFOUND
- SQL% ROWCOUNT
- SQL% ISOPEN
Otázka č. 21) Aké sú spôsoby komentovania v kóde PL / SQL?
Odpoveď: Komentáre sú text, ktorý je súčasťou kódu kvôli lepšej čitateľnosti a pre lepšie porozumenie čitateľom. Tieto kódy sa nikdy nevykonajú.
Existujú dva spôsoby, ako komentovať v PL / SQL:
1) Jeden riadok: Tento komentár začína dvojitým -.
Príklad:
VYHLASOVAŤ
počet POČET (2); - je to lokálna premenná.
ZAČAŤ
2) Viacriadkový komentár: Tento komentár začína / * a končí * /.
Príklad:
ZAČAŤ
num: = & p_num; / * Toto je hostiteľská premenná použitá v tele programu * /
……….
KONIEC
Otázka č. 22) Čo rozumiete pod pojmom spracovanie výnimiek v PL / SQL?
Odpoveď: Ak sa vyskytne chyba v PL / SQL, výnimka sa vyvolá. Inými slovami, na zvládnutie nežiaducich situácií, keď skripty PL / SQL boli neočakávane ukončené, je do programu zahrnutý kód na spracovanie chýb. V PL / SQL je všetok kód na spracovanie výnimiek umiestnený v časti VÝNIMKA.
Existujú 3 typy VÝNIMKY:
- Preddefinované výnimky: Bežné chyby s preddefinovanými názvami.
- Nedefinované výnimky: Menej časté chyby bez preddefinovaných mien.
- Užívateľom definované výnimky: Nespôsobujte runtime chyby, ale porušujte obchodné pravidlá.
Otázka č. 23) Chcete získať niekoľko preddefinovaných výnimiek?
Odpoveď:
Niektoré z preddefinovaných výnimiek sú:
- NEBOLI NÁJDENÉ ŽIADNE DÁTA: Jeden riadok príkazu SELECT, kde sa nevracajú žiadne údaje.
- TOO_MANY_ROWS: Jeden riadok príkazu SELECT, kde je vrátených viac ako jeden riadok.
- INVALID_CURSOR: Došlo k neplatnej operácii kurzora.
- ZERO_DIVIDE: Pokus o delenie nulou.
Otázka č. 24) Čo sú výnimky kurzora PL / SQL?
Odpoveď:
Výnimky týkajúce sa kurzorov PL / SQL sú:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
Otázka č. 25) Vysvetlite rozdiel medzi kurzorom deklarovaným v postupoch a kurzormi deklarovanými v špecifikácii balíka?
Odpoveď: Kurzor deklarovaný v procedúre sa považuje za miestny, a preto k nemu nemožno získať prístup inými procedúrami.
Kurzor deklarovaný v špecifikácii balíka sa považuje za globálny, a tak k nemu možno získať prístup inými procedúrami.
aký je rozdiel medzi sql a sql serverom
Otázka č. 26) Čo sú OKAMŽITE spúšťače?
Odpoveď: Spúšťače INSTEAD OF sú spúšťače napísané špeciálne na úpravu pohľadov, ktoré nie je možné priamo upraviť pomocou príkazov SQL DML.
Otázka č. 27) Čo sú výrazy?
Odpoveď: Výrazy sú reprezentované postupnosťou literálov a premenných, ktoré sú oddelené operátormi. V PL / SQL sa operácie používajú na manipuláciu, porovnanie a výpočet niektorých údajov. Výraz je zloženie výrazov „operátory“ a „operandy“.
- Operandy: Toto je argument pre prevádzkovateľov. Operandy môžu byť premenné, volanie funkcií alebo konštanty.
- Prevádzkovatelia: Tieto určujú činnosti, ktoré sa majú vykonať na operátoroch. Príklad: '+', '*' Atď.
Otázka č. 28) Na príklade uveďte iný typ výrazov.
Odpoveď: Výrazy môžu byť uvedené nižšie:
- Číselné alebo aritmetické výrazy: Príklad: 20 * 10+ 15
- Boolovské výrazy: Príklad: „Spot“ AKO „sp% t“
- Reťazcové výrazy: Príklad: DĹŽKA („NEW YORK“ || „NY“)
- Dátumové výrazy: Príklad: SYSDATE> TO_DATE (‘15 -NOV-16 ’,„ dd-mm-rr “)
Otázka č. 29) Napíš program, ktorý ukazuje použitie slučky WHILE na výpočet priemeru čísel zadaných používateľom a zadávanie ďalších čísel sa zastaví zadaním čísla 0?
Odpoveď
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END;
Otázka 30) Čo rozumiete pod záznamami PL / SQL?
Odpoveď: Záznamy PL / SQL možno označiť ako súbor hodnôt alebo povedzme ako skupinu viacerých informácií, z ktorých každý je jednoduchšieho typu a môžu byť navzájom prepojené ako polia.
V PL / SQL sú podporované tri typy záznamov:
- Tabuľkové záznamy
- Záznamy založené na programátoroch
- Záznamy založené na kurzore
Záver
PL / SQL je veľmi rozsiahly, pokiaľ ide o učenie a aplikáciu. Dúfam, že vám tieto otázky a odpovede na rozhovor pomôžu prejsť.
Ak sa chcete dozvedieť viac informácií o PL SQL, prečítajte si našu príručku Séria výučbových programov PL / SQL .
Šťastné učenie !!
Odporúčané čítanie
- Dotazy a odpovede na pohovor
- ETL Testovacie otázky a odpovede na pohovor
- Top 30+ populárnych otázok a odpovedí na rozhovor s uhorkou
- Top 30 otázok a odpovedí na pohovory SAS
- Najlepšie otázky týkajúce sa rozhovorov Oracle: Otázky Oracle Basic, SQL, PL / SQL
- Najvyšších 30 otázok a odpovedí na pohovory týkajúce sa testovania bezpečnosti
- 30+ najčastejších otázok a odpovedí na skrumáž (ZOZNAM 2021)
- Top 30 otázok a odpovedí na pohovory s DBMS