30 most important pl sql interview questions
Nejlepší otázky týkající se rozhovorů s PL / SQL s příklady, které vám pomohou připravit se na nadcházející rozhovor:
Co je PL / SQL?
PL / SQL (Procedural Language / SQL) je v podstatě procedurální rozšíření Oracle - SQL. PL / SQL pomáhá uživateli vyvíjet složité databázové aplikace pomocí řídicích struktur, postupů, funkcí, modulů atd.
Tento článek pojednává o nejdůležitějších otázkách a odpovědích na pohovor s PL / SQL.
PL / SQL Interview Otázky a odpovědi
Začněme!!
Otázka č. 1) Rozlišovat PL / SQL a SQL?
Odpovědět: Rozdíl mezi SQL a PL / SQL lze rozdělit takto:
SQL | PL / SQL |
---|---|
SQL je přirozený jazyk, který je velmi užitečný pro interaktivní zpracování. | PL / SQL je procedurální rozšíření Oracle - SQL. |
Žádné procedurální funkce, jako je testování stavu, smyčky nenabízí SQL. | PL / SQL podporuje procedurální funkce i vysoce jazykové funkce, jako jsou podmíněné příkazy, smyčkové příkazy atd. |
Všechny příkazy SQL provádí databázový server jeden po druhém, jedná se tedy o časově náročný proces. | Příkazy PL / SQL odesílají celý blok výpisů současně na databázový server, čímž se výrazně sníží síťový provoz. |
V SQL nejsou žádné postupy zpracování chyb. | PL / SQL podporuje přizpůsobené zpracování chyb. |
Otázka č. 2) Zajistit vlastnosti PL / SQL?
Odpovědět:
Charakteristiky PL / SQL jsou následující:
- PL / SQL umožňuje přístup a sdílení stejných podprogramů více aplikacemi.
- Je známý pro přenositelnost kódu, protože kód lze spustit na jakémkoli operačním systému za předpokladu, že je v něm načten Oracle.
- S PL / SQL mohou uživatelé psát své vlastní přizpůsobené rutiny zpracování chyb.
- Vylepšený výkon transakcí díky integraci do datového slovníku Oracle.
Otázka č. 3) Jaké jsou datové typy dostupné v PL / SQL?
Odpovědět: Datové typy definují způsoby, jak identifikovat typ dat a jejich přidružené operace.
Níže jsou vysvětleny 4 typy předdefinovaných datových typů:
- Skalární datové typy: Skalární datový typ je atomový datový typ, který nemá žádné vnitřní součásti.
- Například
- CHAR (rozsah hodnot znaků s pevnou délkou od 1 do 32 767 znaků)
- VARCHAR2 (rozsah hodnot znaků s proměnnou délkou od 1 do 32 767 znaků)
- ČÍSLO (pevné desítkové, plovoucí desítkové nebo celočíselné hodnoty)
- BOOLEAN (logický datový typ pro hodnoty TRUE FALSE nebo NULL)
- DATE (ukládá informace o datu a čase)
- LONG (znaková data proměnné délky)
- Složené datové typy: Složený datový typ se skládá z dalších datových typů a interních komponent, které lze snadno použít a manipulovat s nimi. Například, ZÁZNAM, TABULKA a VARRAY.
- Referenční datové typy: Referenční datový typ obsahuje hodnoty, které se nazývají ukazatele, které určují jiné položky programu nebo datové položky. Například, REF KURZOR.
- Datové typy velkých objektů: Datový typ velkého objektu obsahuje hodnoty zvané lokátory, které definují umístění velkých objektů (například videoklipů, grafických obrázků atd.) Uložených mimo řádek.
- Například
- BFILE (binární soubor)
- BLOB (binární velký objekt)
- CLOB (velký objekt znaků)
- NCLOB (velký objekt typu NCHAR)
Doporučené čtení = >> Datové typy PL SQL
Otázka č. 4) Vysvětlete na příkladu účel datových typů% TYPE a% ROWTYPE?
Odpovědět: PL / SQL používá pro ukotvení atribut deklarace% TYPE. Tento atribut poskytuje datový typ proměnné, konstanty nebo sloupce. Atribut% TYPE je užitečný při deklaraci proměnné, která má stejný datový typ jako sloupec tabulky.
Například, proměnná m_empno má stejný datový typ a velikost jako sloupec empno v tabulce emp.
m_empno emp.empno%TYPE;
Atribut% ROWTYPE se používá k deklaraci proměnné jako záznamu, který má stejnou strukturu jako řádek v tabulce. Řádek je definován jako záznam a jeho pole mají stejná jména a datové typy jako sloupce v tabulce nebo zobrazení.
Například:
dept_rec dept%ROWTYPE;
Tím se deklaruje záznam, do kterého lze uložit celý řádek tabulky DEPT.
Otázka č. 5) Co rozumíte pod balíčky PL / SQL?
Odpovědět: Balíčky PL / SQL jsou objekty schématu, které seskupují funkce, uložené procedury, kurzory a proměnné na jednom místě.
Balíčky mají 2 povinné části:
- Specifikace balení
- Tělo balení
Otázka č. 6) Co rozumíte kurzorům PL / SQL?
Odpovědět: PL / SQL vyžaduje speciální schopnost načíst a zpracovat více než jeden řádek a tento prostředek je známý jako kurzory. Kurzor je ukazatel na kontextovou oblast, což je oblast paměti obsahující příkazy SQL a informace pro zpracování příkazů.
Kurzor PL / SQL je v podstatě mechanismus, podle kterého je vybráno více řádků dat z databáze a poté je každý řádek jednotlivě zpracován uvnitř programu.
Otázka č. 7) Vysvětlete typy kurzorů.
kde získat videa z virtuální reality
Odpovědět: Existují dva typy kurzorů.
Vysvětlují se takto:
a) Explicitní kurzory: U dotazů, které vracejí více než jeden řádek, je programátor deklarován a pojmenován explicitní kurzor. Aby bylo možné použít explicitní kurzor v PL / SQL, následují 4 kroky
- Deklarujte kurzor
Syntax: KURZOR je
Příkaz SELECT;
Tady je název přiřazený kurzoru a příkaz SELECT je dotaz, který vrací řádky do aktivní sady kurzoru.
- Otevřete kurzor
Syntax: OTEVŘENO ;
Kde, je název dříve definovaného kurzoru.
- Načíst řádky z kurzoru
Syntax: NAČÍST DO;
Zde se odkazuje na název dříve definovaného kurzoru, ze kterého se načítají řádky.
představuje seznam proměnných, které budou přijímat načítaná data.
- Zavírání kurzoru
Syntax: ZAVŘÍT ;
Zde je název zavřeného kurzoru.
b) Implicitní kurzory: Když je proveden jakýkoli příkaz SQL, PL / SQL automaticky vytvoří kurzor, aniž by definoval, že tyto kurzory jsou známé jako implicitní kurzory.
Pro následující příkazy PL / SQL využívá implicitní kurzory
- VLOŽIT
- AKTUALIZACE
- VYMAZAT
- SELECT (dotazy, které vracejí přesně jeden řádek)
Otázka č. 8) Kdy použijeme spouštěče?
Odpovědět: Slovo „Spouštěč“ znamená aktivovat. V PL / SQL je spouštěč uložená procedura, která definuje akci provedenou databází při provedení události související s databází.
Spouštěče jsou vyžadovány hlavně pro následující účely:
- Zachovat složitá omezení integrity
- Informace o kontrolní tabulce zaznamenáním změn
- Signalizace dalších akcí programu při provedení změn v tabulce
- Prosazování složitých obchodních pravidel
- Zabránění neplatným transakcím
Otázka č. 9) Vysvětlete rozdíl v provádění spouštěčů a uložených procedur?
Odpovědět: Uložená procedura se provádí výslovně vydáním příkazu volání procedury z jiného bloku prostřednictvím volání procedury s argumenty.
Spouštěč se provede implicitně, kdykoli dojde k jakékoli spouštěcí události, jako je výskyt příkazů DML.
Otázka č. 10) Vysvětlete rozdíl mezi spouštěči a omezeními?
Odpověď: Spouštěče se liší od omezení následujícími způsoby:
Spouštěče | Omezení |
---|---|
Ovlivní pouze ty řádky přidané po aktivaci spouštěče. | Ovlivnit všechny řádky tabulky včetně těch, které již existují, když je omezení povoleno. |
Spouštěče se používají k implementaci složitých obchodních pravidel, která nelze implementovat pomocí omezení integrity. | Omezení udržují integritu databáze. |
Otázka č. 11) Co je blok PL / SQL?
Odpovědět: V PL / SQL jsou příkazy seskupeny do jednotek zvaných Bloky. Bloky PL / SQL mohou zahrnovat konstanty, proměnné, příkazy SQL, smyčky, podmíněné příkazy, zpracování výjimek. Bloky mohou také vytvořit proceduru, funkci nebo balíček.
Široce, Bloky PL / SQL jsou dva typy:
java pohovor programy pro osvěžovače pdf
i) Anonymní bloky: Bloky PL / SQL bez záhlaví jsou známé jako anonymní bloky. Tyto bloky netvoří tělo procedury, funkce nebo spouštěče.
Příklad:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
ii) Pojmenované bloky: Bloky PL / SQL mající záhlaví nebo štítky jsou známé jako pojmenované bloky. Pojmenované bloky mohou být buď podprogramy (procedury, funkce, balíčky), nebo spouštěče.
Doporučené čtení = >> Procedury a funkce PL SQL
Příklad:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
Otázka č. 12) Rozlišovat mezi chybami syntaxe a runtime?
Odpovědět:
Syntaktické chyby jsou ty, které lze snadno identifikovat kompilátorem PL / SQL. Tyto chyby mohou být pravopisnou chybou atd.
Chyby za běhu jsou ty chyby v bloku PL / SQL, pro které má být pro zpracování chyb zahrnuta sekce zpracování výjimek. Tyto chyby mohou být příkazem SELECT INTO, který nevrací žádné řádky.
Otázka č. 13) Co jsou COMMIT, ROLLBACK a SAVEPOINT?
Odpovědět: COMMIT, SAVEPOINT a ROLLBACK jsou tři specifikace transakcí dostupné v PL / SQL.
COMMIT prohlášení: Když je operace DML provedena, manipuluje pouze s daty ve vyrovnávací paměti databáze a databáze zůstává těmito změnami nedotčena. Abychom tyto změny transakcí uložili / uložili do databáze, musíme transakci POVINIT. Transakce COMMIT uloží všechny nevyřízené změny od posledního COMMIT a následujícího procesu
- Dotčené zámky řádků jsou uvolněny
- Transakce označena jako dokončená
- Podrobnosti transakce jsou uloženy v datovém slovníku.
Syntax: SPÁCHAT;
ROLLBACK prohlášení: Pokud chceme vrátit zpět nebo vymazat všechny změny, ke kterým doposud v aktuální transakci došlo, požadujeme vrácení transakce zpět. Jinými slovy ROLLBACK vymaže všechny nevyřízené změny od posledního potvrzení nebo ROLLBACK.
Syntaxe úplného vrácení transakce:
ROLLBACK;
Prohlášení SAVEPOINT: Příkaz SAVEPOINT dává jméno a označuje bod ve zpracování aktuální transakce. Změny a zámky, které nastaly před SAVEPOINT v transakci, jsou zachovány, zatímco ty, které nastanou po SAVEPOINT, jsou uvolněny.
Syntax:
SAVEPOINT;
Otázka č. 14) Co je mutující tabulka a omezující tabulka?
Odpovědět: Tabulka, která je aktuálně upravována příkazem DML, jako je definování spouštěčů v tabulce, je známá jako Mutující tabulka .
Tabulka, z níž může být nutné načíst omezení referenční integrity, je známá jako omezující tabulka .
Otázka č. 15) Jaké jsou skutečné parametry a formální parametry?
Odpovědět: Proměnné nebo výraz označované jako parametry, které se objevují v příkazu volání procedury, jsou známé jako Aktuální parametry .
Například: raise_sal (emp_num, zásluhy + částka);
Tady ve výše uvedeném příkladu jsou emp_num a amount dva skutečné parametry.
Proměnné, které jsou deklarovány v záhlaví procedury a jsou odkazovány v těle procedury, se nazývají jako Formální parametry .
Například:
POSTUP raise_sal (emp_id INTEGER) JE
proud_sal SKUTEČNÉ:
……… ..
ZAČÍT
VYBERTE SAL INTO cur_sal FROM emp WHERE empno = emp_id;
…….
END raise_sal;
Tady ve výše uvedeném příkladu funguje emp_id jako formální parametr.
Otázka č. 16) Jaký je rozdíl mezi výroky ROLLBACK a ROLLBACK TO?
Odpovědět: Transakce je zcela ukončena po prohlášení ROLLBACK, tj. Příkaz ROLLBACK zcela zruší transakci a uvolní všechny zámky.
Na druhou stranu je transakce stále aktivní a běží po příkazu ROLLBACK TO, protože zruší pouze část transakce až do zadaného SAVEPOINT.
Otázka č. 17) Napište skript PL / SQL a zobrazte následující řadu čísel: 99,96,93 …… 9,6,3?
Odpovědět
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) Jaké jsou 3 režimy parametrů?
Odpovědět: 3 režimy parametru jsou IN, OUT, IN OUT.
Lze je vysvětlit takto:
- V parametrech: Parametry IN umožňují předat hodnoty volanému postupu a lze je inicializovat na výchozí hodnoty. Parametry IN fungují jako konstanta a nelze jim přiřadit žádnou hodnotu.
- OUT parametry: Parametry OUT vrací hodnotu volajícímu a musí být specifikovány. Parametry OUT fungují jako neinicializovaná proměnná a nelze je použít ve výrazu.
- Parametry IN OUT: Parametry IN OUT předají počáteční hodnoty proceduře a vrátí aktualizované hodnoty volajícímu. Parametry IN OUT fungují jako inicializovaná proměnná a měla by jim být přiřazena hodnota.
Otázka č. 19) Proč je% ISOPEN vždy implicitní pro implicitní kurzor?
Odpovědět: Implicitní kurzor, atribut SQL% ISOPEN je vždy nepravdivý, protože implicitní kurzor je otevřen pro příkaz DML a je uzavřen bezprostředně po provedení příkazu DML.
Otázka č. 20) Při provedení příkazu DML, ve kterém atributu kurzoru, se uloží výsledek příkazu?
Odpovědět: Výsledek výpisu je uložen ve 4 atributech kurzoru.
Tyto jsou:
- Nalezeno% SQL
- SQL% NOTFOUND
- SQL% ROWCOUNT
- SQL% ISOPEN
Otázka č. 21) Jaké jsou způsoby komentování v kódu PL / SQL?
Odpovědět: Komentáře jsou text, který je součástí kódu, aby se zvýšila čitelnost a porozumění čtenáři. Tyto kódy se nikdy nevykonají.
V PL / SQL existují dva způsoby, jak komentovat:
1) Jednořádkový komentář: Tento komentář začíná dvojitým -.
Příklad:
PROHLÁSIT
počet POČET (2); - je to lokální proměnná.
ZAČÍT
2) Víceřádkový komentář: Tento komentář začíná / * a končí * /.
Příklad:
ZAČÍT
num: = & p_num; / * Toto je hostitelská proměnná použitá v těle programu * /
……….
KONEC
Otázka č. 22) Co chápete pod zpracováním výjimek v PL / SQL?
Odpovědět: Když dojde k chybě v PL / SQL, výjimka se vyvolá. Jinými slovy, pro zvládnutí nežádoucích situací, kdy skripty PL / SQL byly neočekávaně ukončeny, je do programu zahrnut kód pro zpracování chyb. V PL / SQL je veškerý kód pro zpracování výjimek umístěn v části VÝJIMKA.
Existují 3 typy VÝJIMKY:
- Předdefinované výjimky: Běžné chyby s předdefinovanými názvy.
- Nedefinované výjimky: Méně časté chyby bez předdefinovaných jmen.
- Uživatelem definované výjimky: Nezpůsobujte runtime chybu, ale porušujte obchodní pravidla.
Otázka č. 23) Chcete získat nějaké předdefinované výjimky?
Odpovědět:
Některé z předdefinovaných výjimek jsou:
- NENALEZENA ŽÁDNÁ DATA: Jednořádkový příkaz SELECT, kde nejsou vrácena žádná data.
- TOO_MANY_ROWS: Jednořádkový příkaz SELECT, kde je vráceno více než jeden řádek.
- INVALID_CURSOR: Došlo k neplatné operaci kurzoru.
- ZERO_DIVIDE: Pokus o dělení nulou.
Otázka č. 24) Co jsou výjimky kurzoru PL / SQL?
Odpovědět:
Výjimky související s kurzory PL / SQL jsou:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
Otázka č. 25) Vysvětlete rozdíl mezi kurzorem deklarovaným v procedurách a kurzory deklarovanými ve specifikaci balíčku?
Odpovědět: Kurzor deklarovaný v proceduře je považován za místní, a proto k němu nelze získat přístup jinými procedurami.
Kurzor deklarovaný ve specifikaci balíčku je považován za globální a lze k němu tedy přistupovat jinými procedurami.
Otázka č. 26) Co jsou INSTEAD OF triggery?
Odpovědět: Spouštěče INSTEAD OF jsou spouštěče napsané speciálně pro úpravy pohledů, které nelze přímo upravit pomocí příkazů SQL DML.
Otázka č. 27) Co jsou výrazy?
Odpovědět: Výrazy jsou reprezentovány posloupností literálů a proměnných, které jsou odděleny operátory. V PL / SQL se operace používají k manipulaci, porovnávání a výpočtu některých dat. Výraz je složením operátorů a operandů.
- Operandy: Jedná se o argument pro operátory. Operandy mohou být proměnné, volání funkcí nebo konstanty.
- Provozovatelé: Ty určují akce, které mají být prováděny na operátorech. Příklad: '+', '*' Atd.
Otázka č. 28) V příkladu uveďte různé typy výrazů.
kterou z následujících operací nelze použít na ukazatele
Odpovědět: Výrazy mohou být, jak je uvedeno níže:
- Číselné nebo aritmetické výrazy: Příklad: 20 * 10+ 15
- Booleovské výrazy: Příklad: „Spot“ LIKE „sp% t“
- Řetězcové výrazy: Příklad: DÉLKA („NEW YORK“ || „NY“)
- Datové výrazy: Příklad: SYSDATE> TO_DATE („15 -NOV-16“, „dd-mm-rr“)
Otázka č. 29) Napište program, který ukazuje využití smyčky WHILE k výpočtu průměru čísel zadaných uživatelem a zadávání více čísel se zastaví zadáním čísla 0?
Odpovědět
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) Co chápete pod PL / SQL Records?
Odpovědět: Záznamy PL / SQL lze označit jako soubor hodnot nebo řekněme jako skupinu více informací, z nichž každá má jednodušší typy a lze je navzájem propojit jako pole.
V PL / SQL jsou podporovány tři typy záznamů:
- Tabulkové záznamy
- Záznamy založené na programátorech
- Kurzorové záznamy
Závěr
PL / SQL je velmi rozsáhlý, pokud jde o učení a aplikaci. Doufám, že vám tyto otázky a odpovědi na rozhovor pomohou projít.
Chcete-li se dozvědět více o PL SQL, přečtěte si naši komplexní Série výukových programů pro PL / SQL .
Šťastné učení !!
Doporučené čtení
- Dotazy a odpovědi na pohovor
- ETL Testing Interview Otázky a odpovědi
- Top 30+ populárních otázek a odpovědí na rozhovor s okurkou
- Top 30 SAS Interview Dotazy a odpovědi
- Nejlepší dotazy na rozhovor Oracle: Otázky Oracle Basic, SQL, PL / SQL
- Top 30 bezpečnostních testovacích dotazů a odpovědí
- 30+ nejlepších otázek a odpovědí na rozhovory se Scrumem [SEZNAM 2021]
- Top 30 DBMS Interview Otázky a odpovědi