sql >> Databáze >  >> RDS >> Oracle

otázky k rozhovoru pro Oracle PLSQL

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


  1. Jak získat data za posledních 12 měsíců v MySQL

  2. Jaký je rozdíl mezi VARCHAR a CHAR?

  3. Jak poskytnout klientovi API 1 000 000 výsledků databáze?

  4. Výhody NoSQL databází – Vše, co potřebujete vědět