Zde je kompilace nejčastěji kladených otázek ohledně rozhovoru s Oracle plsql. Ty vám při pohovoru jistě pomohou. Otázky jsou od základní až po pokročilé úrovně a pokrývají většinu aspektů programování PLSQL. Doufám, že to pro vás bude užitečné
Otázka (1) Co je Oracle PLSQL?
Odpověď
PL/SQL je rozšíření procedurálního jazyka ke Structured Query Language (SQL). Účelem PL/SQL je kombinovat databázový jazyk a procedurální programovací jazyk
Otázka(2) Jaké jsou součásti bloku PL/SQL?
Odpověď
Deklarativní část, spustitelná část a část výjimka.
Otázka (3) Jaké datové typy jsou dostupné v PL/SQL?
Odpověď
Některé typy skalárních dat, jako je
NUMBER, VARCHAR2, DATE, CHAR, LONG, BOOLEAN.
Některé typy složených dat, jako je RECORD &TABLE.
Otázka (4) Co je to kurzor? Proč je vyžadován kurzor?
Odpověď
Kurzor je pojmenovaná soukromá oblast SQL, odkud lze přistupovat k informacím.
Kurzory jsou vyžadovány ke zpracování řádků jednotlivě u dotazů vracejících více řádků.
Otázka (5) Jaký je rozdíl mezi procedurou a funkcí?
Odpověď
Funkce | Postup |
Funkce musí vrátit hodnotu | Postup nemusí |
Syntaxe Název FUNKCE (seznam argumentů …..) Návratový datový typ je deklarace místních proměnných Začátek Spustitelné příkazy Výjimka obslužné rutiny provádění Konec; | Syntaxe Název PROCEDURE (seznam parametrů…..) je deklarace místních proměnných BEGIN Spustitelné příkazy. Výjimka. Obslužné rutiny výjimek konec; |
Funkci lze v SQL použít s určitým omezením | Procedura nemůže být volána přímo z SQL. |
Otázka (6) Jaký je rozdíl mezi DELETE a TRUNCATE?
Odpověď
Smazat | Zkrácení |
DELETE je příkaz DML | TRUNCATE je příkaz DDL. |
Syntaxe Smazat * z tabulky Commit; | Syntaxe Zkrátit tabulku |
Značku nejvyšší hladiny to nemění | TRUNCATE znovu nastaví paměťové bloky po provedení, tj. nastaví nejvyšší hodnotu objektu |
Lze vrátit zpět | Nelze vrátit zpět |
Spouštějí se spouštěcí pravidla mazání | Nebudou spuštěna žádná pravidla |
Používají se zpětné segmenty | Je použito méně segmentů vrácení zpět a je to mnohem rychlejší |
Otázka (7) Co je to implicitní kurzor a explicitní kurzor?
Odpověď
Implicitní kurzor | Explicitní kurzor |
Implicitní kurzor je definován a řízen interně Oracle. | Explicitní kurzor je definován a řízen programově. |
Syntaxe deklarovat v_dept varchar2(50); začněte vyberte oddělení do v_dept z oddělení, kde umístění =‚XYZ‘; konec; | Syntaxe deklarovat v_dept varchar2(50); Cursor Cur_dept je výběr oddělení do v_dept z oddělení, kde umístění =‚XYZ‘; začít Otevřít Cur_dept; Načtěte Cur_dept do v_dept; Zavřít Cur_dept; konec; |
Veškerý výběr/aktualizační dotaz použitý v bloku PL/SQL je implicitní kurzor | Explicitní kurzor je otevřen, načíst a zavřít |
Otázka (8) Co jsou rowid a rownum?
Odpověď
Rowid je jedinečné hexadecimální číslo pro každý řádek tabulky, který se používá k vyhledávání.
Rownum je jedinečné celé číslo pro každý řádek tabulky, který lze použít pro třídění nebo analýzu.
Otázka (9) Vysvětlete rozdíl mezi FUNKCÍ, POSTUPEM a BALÍČKEM
Odpověď
Funkce | -Funkce má ve své specifikaci návratový typ a musí vracet hodnotu uvedenou v tomto typu. -Jsou uloženy v kompilované podobě v databázi – Funkce lze volat kdekoli v platném výraz Vyberte fnd_profile.value('xyz) z dual; |
Postup | -Procedura nemá ve své specifikaci návratový typ a neměla by vracet žádnou hodnotu, ale může mít příkaz return, který jednoduše zastaví její provádění a vrátí se volajícímu -Jsou uloženy v kompilované podobě v databázi -Procedury se nazývají jako samostatné spustitelné příkazy:my_proc(parametr1,parametr2…); |
Balíčky | -Balíčky obsahují funkce, procedury a další datové struktury. – Výhody balíčků jsou modularita, jednodušší návrh aplikací a informace. Skrytí, opětovná použitelnost a lepší výkon. -Mezi zabalenými a nezabalenými programy PL/SQL je řada rozdílů. Balík Data v balíčku jsou trvalá po dobu trvání relace uživatele. Data v balíčku tedy existují napříč potvrzeními v relaci. -Pokud balíčku udělíte oprávnění ke spuštění, platí to pro všechny funkce a procedury a datové struktury ve specifikaci balíčku. Nemůžete udělit oprávnění pouze jedné proceduře nebo funkci v balíčku.-Můžete přetížit procedury a funkce v balíčku a deklarovat více programů se stejným názvem. O správném programu, který má být volán, se rozhoduje za běhu na základě počtu datových typů parametrů. |
Otázka (10) Definujte Commit, Rollback a Save-point.
Odpověď.
Zavázat se | Potvrzení se používá k tomu, aby byla transakce trvalá Po provedení potvrzení se stanou následující věci a)Veškerá práce provedená transakcí se stane trvalou. b)Ostatní uživatelé mohou vidět změny v datech provedené transakcí. c )Všechny zámky získané transakcí jsou uvolněny. |
Vrácení zpět | Vrácení zpět se používá ke zrušení transakce . Po provedení vrácení zpět se stanou následující věci a)Veškerá práce provedená transakcí je vrácena zpět, jako by nebyla vydána. b) Všechny zámky získané transakcí jsou uvolněny . |
Uložený bod | SAVEPOINT je bod v transakci, kdy můžete vrátit transakci zpět do určitého bodu, aniž byste museli vrátit zpět celou transakci. |
Otázka (11) Co jsou SQLCODE a SQLERRM a proč jsou důležité pro vývojáře PL/SQL?
Odpověď
SQLCODE vrátí hodnotu čísla chyby pro poslední zjištěnou chybu. SQLERRM vrátí skutečnou chybovou zprávu pro poslední zjištěnou chybu. Lze je použít při zpracování výjimek k nahlášení chyby, která se vyskytla v kódu, nebo k uložení do tabulky protokolu chyb. Ty jsou zvláště užitečné pro výjimku WHEN OTHERS.
Otázka (12) Jak můžete v bloku PL/SQL zjistit, zda je kurzor otevřený?
Odpověď
Použijte stavovou proměnnou kurzoru %ISOPEN.
Otázka (13) Jak můžete generovat výstup ladění z PL/SQL?
Odpověď
Použijte balíček DBMS_OUTPUT. Další možnou metodou je pouze použití příkazu SHOW ERROR, ale zobrazuje pouze chyby. Balíček DBMS_OUTPUT lze použít k zobrazení mezivýsledků ze smyček a stavu proměnných při provádění procedury. Lze také použít nový balíček UTL_FILE.
Otázka (14) Jaké jsou výjimky PL/SQL?
Odpověď
Některé z nich jsou
1.Too_many_rows
2.No_Data_Found
3.Value_error
4.Zero_error atd.
Otázka (15) Jaký je maximální počet spouštěčů, které můžete použít na jednu tabulku?
Odpověď
12 spouštěčů.
Otázka (16) Jaké jsou dvě části balíčku?
Odpověď
Dvě části jsou specifikace balíčku a tělo balíčku
Skládají se ze specifikace balíčku, která obsahuje záhlaví funkcí, záhlaví procedur a externě viditelné datové struktury. Tělo balíčku obsahuje sekce deklarace, spustitelného souboru a zpracování výjimek všech přibalených procedur a funkcí.
Otázka (17) Co je přetížení procedur?
Odpověď
Opakování stejného názvu procedury s jiným seznamem parametrů
Otázka (18) Jaké jsou režimy parametrů, které lze předat proceduře?
Odpověď
Parametry IN, OUT, IN-OUT.
Otázka (19) Jaký příkaz byste použili k šifrování aplikace PL/SQL?
Odpověď
WRAP
Otázka (20) Kolik typů spouštěčů existuje v PL/SQL?
Odpověď
V PL/SQL existuje 12 typů spouštěčů, které obsahují kombinaci klíčových slov BEFORE, AFTER, RW, TABLE, INSERT, UPDATE, DELETE a ALL.
◦BEFORE ALL ROW INSERT
◦PO VLOŽENÍ VŠECH ŘÁDKŮ
◦PŘED VLOŽENÍM
◦PO VLOŽENÍ atd.
Otázka (21) Pojmenujte tabulky, kde jsou uloženy charakteristiky balíčku, procedury a funkce?
Odpověď
dba_objects, dba_Source a dba_error.
nebo
user_objects,user_Source a user_error.
Otázka (22) Co je uložená procedura?
Odpověď
Uložená procedura je sekvence příkazů nebo pojmenovaný PL/SQL blok, který provádí jednu nebo více specifických funkcí. Je to podobné jako v jiných programovacích jazycích. Je uložen v databázi a lze jej opakovaně spouštět. Je uložen jako objekt schématu. Lze jej vnořovat, vyvolávat a parametrizovat.
Otázka (23) Jak provést uloženou proceduru?
Odpověď
Existují dva způsoby, jak spustit uloženou proceduru.
Z příkazového řádku SQL napište EXECUTE nebo EXEC následovaný postupem název_procedury
Otázka (24) Co je Raise_application_error?
Odpověď
Raise_application_error je procedura balíčku DBMS_STANDARD, která umožňuje vydávat uživatelsky definované chybové zprávy z uloženého podprogramu nebo spouštěče databáze.
Otázka (25) Co je Pragma EXECPTION_INIT? Vysvětlete použití?
Odpověď
PRAGMA EXCEPTION_INIT říká kompilátoru, aby přiřadil výjimku k chybě orákula. Chcete-li získat chybovou zprávu o konkrétní chybě Oracle.
např. PRAGMA EXCEPTION_INIT (název výjimky, číslo chyby Oracle)
Doufám, že se vám tato kompilace dotazů na rozhovory s Oracle PlSQL líbí. V budoucnu zveřejním více takových otázek
Související odkazy
Otázky a odpovědi na rozhovory s aplikacemi Oracle
otázky k pohovoru Oracle dba
Otázky k rozhovoru Oracle RAC
Otázky k pohovoru Weblogic
Doufám, že se vám líbí kompilace otázek k rozhovoru pro oracle plsql. Uveďte prosím zpětnou vazbu