Stiahnite si PDF
1) Čo je PL SQL?
PL SQL je procedurálny jazyk, ktorý má interaktívne SQL a tiež konštrukcie procedurálneho programovacieho jazyka, ako je podmienené vetvenie a iterácia.
2) Rozlišujte medzi% ROWTYPE a TYPE RECORD.
% ROWTYPE sa používa, keď dotaz vráti celý riadok tabuľky alebo zobrazenia.
ZÁZNAM TYPU sa na druhej strane používa, keď dotaz vráti stĺpec rôznych tabuliek alebo zobrazení.
Napr. TYP r_emp je RECORD (sno smp.smpno% type, sname smp sname% type)
e_rec smp% ROWTYPE
Kurzor c1 je select smpno, odd od smp;
e_rec c1% ROWTYPE
3) Vysvetlite použitie kurzora.
Kurzor je pomenovaná súkromná oblasť v SQL, z ktorej je možné získať prístup k informáciám. Pri dotazoch, ktoré vracajú viac riadkov, sú povinní spracovať každý riadok osobitne.
4) Zobraziť kód kurzora pre slučku.
Kurzor implicitne deklaruje% ROWTYPE ako index slučky. Potom otvorí kurzor, získa riadky hodnôt z aktívnej množiny v poliach záznamu a vypne sa pri spracovaní všetkých záznamov.
Napr. PRE smp_rec V C1 LOOP
totalsal = totalsal + smp_recsal;
ENDLOOP;
5) Vysvetlite použitie spúšťača databázy.
Programová jednotka PL / SQL spojená s konkrétnou databázovou tabuľkou sa nazýva spúšťač databázy. Používa sa na:
1) Úpravy údajov auditu.
2) Transparentne zaznamenávajte udalosti.
3) Presadzujte komplexné obchodné pravidlá.
4) Udržiavajte replické tabuľky
5) Odvodte hodnoty stĺpca
6) Implementujte komplexné bezpečnostné oprávnenia
6) Aké sú dva typy výnimiek.
Chyba pri spracovaní časti bloku PL / SQL sa nazýva Výnimka. Majú dva typy: user_defined a predefined.
7) Zobraziť niektoré preddefinované výnimky.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
NEBOLI NÁJDENÉ ŽIADNE DÁTA
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
ZLÉ ČÍSLO
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
atď.
8) Vysvetlite Raise_application_error.
Jedná sa o procedúru balíka DBMS_STANDARD, ktorá umožňuje vydávanie užívateľsky definovaných chybových správ zo spúšťača databázy alebo z uloženého podprogramu.
9) Ukážte, ako sa volajú funkcie a procedúry v bloku PL SQL.
Funkcia sa nazýva ako súčasť výrazu.
celkom: = vypočítať_sal ('b644')
Procedúra sa volá ako príkaz v PL / SQL.
vypočítať_bonus ('b644');
10) Vysvetlite dve virtuálne tabuľky, ktoré sú k dispozícii v čase vykonania spúšťača databázy.
Stĺpce tabuľky sa označujú ako THEN.column_name a NOW.column_name.
Pre spúšťače súvisiace s INSERT sú k dispozícii iba hodnoty NOW.column_name.
Pre spúšťače súvisiace s odstránením sú hodnoty THEN.column_name k dispozícii iba.
Pre spúšťače súvisiace s UPDATE sú k dispozícii oba stĺpce tabuľky.
11) Aké pravidlá sa majú uplatňovať na hodnoty NULL pri porovnávaní?
1) NULL nie je nikdy PRAVDA alebo NEPRAVDA
2) NULL nemôže byť rovnaká alebo nerovná sa iným hodnotám
3) Ak je vo výraze hodnota NULL, potom sa samotný výraz vyhodnotí na hodnotu NULL okrem operátora zreťazenia (||)
12) Ako sa kompiluje proces PL SQL?
Proces kompilácie zahrnuje procesy kontroly syntaxe, viazania a generovania p-kódu.
Kontrola syntaxe kontroluje PL SQL kódy na chyby kompilácie. Keď sa opravia všetky chyby, premenným, ktoré obsahujú údaje, sa priradí adresa úložiska. Volá sa Viazanie. P-kód je zoznam pokynov pre stroj PL SQL. P-kód je uložený v databáze pre pomenované bloky a je použitý pri ďalšom spustení.
13) Rozlišujte medzi syntaxovými a runtime chybami.
Syntaxovú chybu môže ľahko zistiť kompilátor PL / SQL. Napríklad nesprávny pravopis.
Chyba za behu sa vybavuje pomocou sekcie spracovania výnimiek v bloku PL / SQL. Napríklad príkaz SELECT INTO, ktorý nevracia žiadne riadky.
14) Vysvetlite Commit, Rollback a Savepoint.
Pre príkaz COMMIT platí toto:
- Ostatní používatelia môžu vidieť zmeny údajov vykonané transakciou.
- Zámky získané transakciou sa uvoľnia.
- Práca vykonaná transakciou sa stáva trvalou.
Po ukončení transakcie sa vydá výpis ROLLBACK, ktorý je pravdivý.
- Práca vykonaná pri prechode je vrátená späť, akoby nikdy nebola vydaná.
- Všetky zámky získané transakciou sa uvoľnia.
Vráti späť všetku prácu vykonanú používateľom pri transakcii. Pomocou funkcie SAVEPOINT je možné vrátiť iba časť transakcie.
15) Definujte implicitné a explicitné kurzory.
Kurzor je implicitne implicitný. Užívateľ nemôže ovládať alebo spracovávať informácie v tomto kurzore.
Ak dotaz vráti viac riadkov údajov, program definuje explicitný kurzor. To umožňuje aplikácii spracovať každý riadok postupne, keď ho kurzor vráti.
16) Vysvetlite chybu mutujúcej tabuľky.
Nastáva, keď sa spúšťač pokúsi aktualizovať riadok, ktorý práve používa. Opravuje sa to pomocou pohľadov alebo dočasných tabuliek, takže databáza vyberie jedno a druhé aktualizuje.
17) Kedy sa vyžaduje vyhlásenie?
Príkaz DECLARE používajú anonymné bloky PL SQL, ako napríklad samostatné, neuložené procedúry. Ak sa použije, musí byť na prvom mieste v samostatnom súbore.
18) Koľko spúšťačov je možné použiť na tabuľku?
Na jednu tabuľku je možné použiť maximálne 12 spúšťačov.
19) Aký je význam SQLCODE a SQLERRM?
SQLCODE vráti hodnotu počtu chýb pre poslednú chybu, zatiaľ čo SQLERRM vráti správu pre poslednú chybu.
20) Ak je otvorený kurzor, ako nájdeme v bloku PL SQL?
možno použiť stavovú premennú% ISOPEN.
21) Zobraziť dve výnimky kurzora PL / SQL.
Cursor_Already_Open
Invaid_cursor
22) Aký operátor pracuje s NULL?
NVL prevádza NULL na inú zadanú hodnotu.
var: = NVL (var2, 'Hi');
IS NULL a IS NOT NULL možno použiť na konkrétnu kontrolu, či je hodnota premennej NULL alebo nie.
23) Má SQL * Plus tiež modul PL / SQL?
Nie, SQL * Plus nemá v sebe zabudovaný PL / SQL Engine. Celý kód PL / SQL sa teda odošle priamo do databázového stroja. Je to oveľa efektívnejšie, pretože každé tvrdenie nie je odstránené jednotlivo.
24) Aké balíčky sú k dispozícii vývojárom PL SQL?
Séria balíkov DBMS, ako napríklad DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Vysvetlite 3 základné časti spúšte.
- Spúšťací príkaz alebo udalosť.
- Obmedzenie
- Akcia
26) Čo sú to funkcie postáv?
INITCAP, UPPER, SUBSTR, LOWER a LENGTH sú všetky znakové funkcie. Skupinové funkcie poskytujú výsledky na základe skupín riadkov, na rozdiel od jednotlivých riadkov. Sú to MAX, MIN, AVG, COUNT a SUM.
27) Vysvetlite TTITLE a BTITLE.
Príkazy TTITLE a BTITLE, ktoré ovládajú hlavičky a päty prehľadov.
28) Zobraziť atribúty kurzora PL / SQL.
% ISOPEN: Skontroluje, či je kurzor otvorený alebo nie
% ROWCOUNT: Počet riadkov, ktoré sú aktualizované, odstránené alebo načítané.
% ZISTENÉ: Skontroluje, či kurzor načítal niektorý riadok. Je to pravda, ak sa načítajú riadky
% NENALEZENÉ: Skontroluje, či kurzor načítal niektorý riadok. Je pravda, ak sa riadky nenačítajú.
29) Čo je to priesečník?
Intersect je produktom dvoch tabuliek a uvádza iba zodpovedajúce riadky.
30) Čo sú to sekvencie?
Sekvencie sa používajú na generovanie poradových čísel bez réžie blokovania. Jeho nevýhodou je, že ak sa transakcia vráti späť, poradové číslo sa stratí.
31) Ako by ste odkázali na hodnoty stĺpcov PRED a PO vložení a odstránení spúšťačov?
Pomocou kľúčového slova „new.column name“ môžu spúšťače odkazovať na hodnoty stĺpcov pomocou novej kolekcie. Použitím kľúčového slova "old.column name" môžu referencovať vaue stĺpcov podľa starej zbierky.
32) Na čo sa používajú kľúčové slová SYSDATE a USER?
SYSDATE odkazuje na aktuálny systémový dátum servera. Je to pseudo stĺpec. USER je tiež pseudo stĺpec, ale odkazuje na aktuálneho používateľa prihláseného do relácie. Používajú sa na sledovanie zmien prebiehajúcich v tabuľke.
33) Ako pomáha program ROWID pri rýchlejšom spustení dotazu?
ROWID je logická adresa riadku, nejde o fyzický stĺpec. Skladá sa z čísla dátového bloku, čísla súboru a čísla riadku v dátovom bloku. I / O čas sa tak minimalizuje načítaním riadku a výsledkom bude rýchlejší dopyt.
34) Na čo sa používajú odkazy na databázu?
Odkazy na databázy sa vytvárajú s cieľom vytvoriť komunikáciu medzi rôznymi databázami alebo rôznymi prostrediami, ako sú testovanie, vývoj a výroba. Odkazy na databázu sú iba na čítanie, aby získali prístup aj k ďalším informáciám.
35) Čo robí načítanie kurzora?
Načítaním kurzora sa načíta sada výsledkov po riadkoch.
36) Čo robí zatváranie kurzora?
Zatvorenie kurzora vymaže súkromnú oblasť SQL a zruší alokáciu pamäte
37) Vysvetlite použitie súboru Control File.
Je to binárny súbor. Zaznamenáva štruktúru databázy. Zahŕňa umiestnenie niekoľkých súborov denníka, mien a časových pečiatok. Môžu byť uložené na rôznych miestach, aby pomohli pri načítaní informácií, ak dôjde k poškodeniu jedného súboru.
38) Vysvetlite jednotnosť
Konzistencia ukazuje, že údaje sa ostatným používateľom neodrazia, kým nedôjde k ich potvrdeniu, aby sa zachovala konzistencia.
39) Rozdiely medzi anonymnými blokmi a podprogrammi.
Anonymné bloky sú nepomenované bloky, ktoré nie sú nikde uložené, zatiaľ čo podprogramy sa kompilujú a ukladajú do databázy. Sú zostavené za behu programu.
40) Rozdiel medzi DECODE a CASE.
Príkazy DECODE a CASE sú si veľmi podobné, ale CASE je rozšírená verzia DECODE. DECODE neumožňuje namiesto neho vyhlásenia s rozhodovacími právomocami.
vyberte dekódovanie (totalsal = 12000, 'high', 10 000, 'medium') ako decode_tesr z smp, kde smpno in (10,12,14,16);
Toto vyhlásenie vráti chybu.
CASE sa priamo používa v PL SQL, ale DECODE sa používa iba v PL SQL prostredníctvom SQL.
41) Vysvetlite autonómnu transakciu.
Autonómna transakcia je nezávislá transakcia hlavnej alebo materskej transakcie. Nie je vnorené, ak je spustené inou transakciou.
Existuje niekoľko situácií na použitie autonómnych transakcií, ako napríklad protokolovanie udalostí a auditovanie.
42) Rozlišujte medzi SGA a PGA.
SGA znamená Globálna oblasť systému, zatiaľ čo PGA znamená Globálna oblasť programu alebo procesu. PGA má pridelenú iba 10% veľkosť RAM, ale SGA má veľkosť 40% RAM.
43) Aké je umiestnenie Pre_defined_functions.
Sú uložené v štandardnom balíku s názvom „Funkcie, postupy a balíčky“.
44) Vysvetlite polymorfizmus v PL SQL.
Polymorfizmus je vlastnosťou OOP. Je to schopnosť vytvárať premenné, objekty alebo funkcie vo viacerých formách. PL / SQL podporuje polymorfizmus vo forme preťaženia programových jednotiek vo vnútri členskej funkcie alebo balíka ... Počas preťažovania sa treba vyhnúť jednoznačnej logike.
45) Na aké účely sa MERGE používa?
MERGE sa používa na spojenie viacerých príkazov DML do jedného.
Syntax: zlúčiť do názvu tabuľky
pomocou (dopyt)
zapnuté (podmienka spojenia)
keď sa potom nezhoduje
príkaz [vložiť / aktualizovať / odstrániť]
keď potom uzavreté
príkaz [vložiť / aktualizovať / odstrániť]
46) Je možné vykonať dva dotazy súčasne v distribuovanom databázovom systéme?
Áno, dajú sa vykonať súčasne. Jeden dotaz je vždy nezávislý od druhého dotazu v distribuovanom databázovom systéme založenom na dvojfázovom potvrdení.
47) Vysvetlite Raise_application_error.
Jedná sa o procedúru balíka DBMS_STANDARD, ktorá umožňuje vydávať užívateľsky definované chybové správy zo spúšťača databázy alebo z uloženého podprogramu.
48) Aký parameter out sa používa pre príkaz return, aj keď sa dá použiť aj v pl / sql?
Parametre Out umožňujú vo volajúcom programe viac ako jednu hodnotu. Parameter out sa vo funkciách neodporúča. Ak je potrebných viac hodnôt, môžu byť použité procedúry namiesto funkcií. Tieto postupy sa teda používajú na vykonávanie parametrov Out.
49) Ako by ste previedli dátum do juliánskeho formátu dátumu?
Môžeme použiť reťazec formátu J:
SQL> vyberte to_char (to_date ('29-Mar-2013 ',' dd-mon-yyyy '),' J ') ako julian z dual;
JULIAN
50) Vysvetlite SPOOL
Príkaz Spool dokáže vytlačiť výstup príkazov sql do súboru.
spool / tmp / sql_outtxt
vyberte smp_name, smp_id z smp, kde dept = 'accounts';
odvíjať;
51) Uveďte, z čoho pozostáva balíček PL / SQL?
Balík PL / SQL sa skladá z
- Tabuľka PL / SQL a zaznamenávať príkazy TYPU
- Postupy a funkcie
- Kurzory
- Premenné (tabuľky, skaláre, záznamy atď.) A konštanty
- Názvy výnimiek a pragmy týkajúce sa spojenia čísla chyby s výnimkou
- Kurzory
52) Uveďte, aké sú výhody balíkov PL / SQL?
Poskytuje niekoľko výhod ako
- Skrytie vynútených informácií: Ponúka slobodu zvoliť si, či budú údaje súkromné alebo verejné
- Dizajn zhora nadol: Môžete navrhnúť rozhranie s kódom skrytým v balíčku skôr, ako skutočne implementujete samotné moduly
- Perzistencia objektu: Objekty deklarované v špecifikácii balíka sa správajú ako globálne údaje pre všetky objekty PL / SQL v aplikácii. Balík môžete upraviť v jednom module a potom tieto zmeny odkazovať na iný modul
- Objektovo orientovaný dizajn: Balík poskytuje vývojárom silnú kontrolu nad tým, ako je možné používať moduly a dátové štruktúry v balíku
- Zaručenie integrity transakcie: Poskytuje úroveň integrity transakcie
- Zlepšenie výkonu: RDBMS automaticky sleduje platnosť všetkých programových objektov uložených v databáze a zvyšuje výkon balíkov.
53) Uveďte, aké sú rôzne metódy na vysledovanie kódu PL / SQL?
Sledovanie kódu je rozhodujúcou technikou na meranie výkonu kódu počas behu programu. Rôzne metódy sledovania zahŕňajú
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION a DBMS_MONITOR
- pomôcky trcsess a tkproof
54) Uveďte, čo robí hierarchický profilovač?
Hierarchický profilovač by mohol profilovať hovory uskutočnené v PL / SQL, okrem vyplnenia medzery medzi medzerami a očakávaniami sledovania výkonu. Účinnosť hierarchického profilovača zahŕňa
- Jednoznačné vykazovanie spotreby času SQL a PL / SQL
- Hlási počet samostatných volaní podprogramov uskutočnených v PL / SQL a čas strávený každým volaním podprogramu
- Viaceré interaktívne analytické správy vo formáte HTML pomocou obslužného programu príkazového riadku
- Efektívnejšie ako konvenčné profilovacie nástroje a iné nástroje na sledovanie
55) Uveďte, čo vám umožňuje PLV správa?
Správa PLV vám umožňuje
- Priraďte jednotlivú textovú správu k zadanému riadku v tabuľke PL / SQL
- Načíta text správy podľa čísla
- Automaticky nahradzuje vaše vlastné správy štandardnými chybovými správami Oracle s prepínaním obmedzenia
- Dávkové načítanie čísel správ a textu z databázovej tabuľky priamo PLV msg PL / SQL tabuľka
56) Uveďte, čo ponúka balíček PLV (PL / Vision)?
- Nulová substitučná hodnota
- Sada rutín tvrdenia
- Rôzne nástroje
- Sada konštánt použitých vo vízii PL
- Preddefinované dátové typy
- 57) Uveďte, aké je použitie PLVprs a PLVprsps?
- PLVprs: Je to rozšírenie pre analýzu reťazcov pre PL / SQL a je to najnižšia úroveň funkčnosti analýzy reťazcov
- PLVprsps: Je to balík najvyššej úrovne na syntézu zdrojového kódu PL / SQL do samostatných atómov. Pri práci sa spolieha na ďalšie parsovacie balíčky.
58) Vysvetlite, ako môžete vopred skopírovať súbor do obsahu súboru a do tabuľky PL / SQL?
Pomocou jediného volania programu - „ postupu kopírovania “ môžete skopírovať celý obsah jedného súboru do iného súboru. Na kopírovanie obsahu súboru priamo do tabuľky PL / SQL môžete použiť program „ file2pstab“ .
59) Vysvetlite, ako sa vykonáva spracovanie výnimiek vopred PL / SQL?
Na spracovanie výnimiek poskytuje PL / SQl efektívny doplnok PLVexc. PLVexc podporuje štyri rôzne akcie spracovania výnimiek.
- Pokračujte v spracovaní
- Zaznamenajte a potom pokračujte
- Zastaviť spracovanie
- Zaznamenajte a potom zastavte spracovanie
Pre tie výnimky, ktoré sa vyskytnú opakovane, môžete použiť príkaz RAISE.
60) Uveďte, s akým problémom by sa človek mohol stretnúť pri zápise informácií z denníka do tabuľky databázy v PL / SQL?
Pri zápise informácií o protokole do databázovej tabuľky nastáva problém, že tieto informácie sú dostupné iba vtedy, keď sú do databázy priradené nové riadky. To by mohol byť problém, pretože taký PLVlog sa zvyčajne nasadzuje na sledovanie chýb a v mnohých takýchto prípadoch by aktuálna transakcia zlyhala alebo by inak potrebovala vrátenie zmien.
61) Uveďte, aká je funkcia, ktorá sa používa na prenos protokolu tabuľky PL / SQL do databázovej tabuľky?
Na prenos denníka tabuľky PL / SQL sa používa funkcia tabuľky denníka databázy „POSTUP ps2db“ .
62) Kedy musíte použiť predvolený bod uloženia PLVlogu „rollback to“?
Predvolený bod obnovenia "návratu" na PLVlog sa používa, keď používatelia zapli aktivitu vrátenia a vo výzve put_line neposkytli alternatívny bod uloženia. Predvolený bod uloženia je inicializovaný na konštantu c none.
63) Prečo je PLVtab považovaný za najjednoduchší spôsob prístupu k tabuľke PL / SQL?
Tabuľka PL / SQL je najbližšie k poľám v PL / SQL a pre prístup k tejto tabuľke musíte najskôr deklarovať typ tabuľky a potom musíte deklarovať samotnú tabuľku PL / SQL. Ale pomocou PLVtab sa môžete vyhnúť definovaniu vlastného typu tabuľky PL / SQL a uľahčiť prístup k údajovým tabuľkám PL / SQL.
64) Uveďte, čo vám umožňuje program PLVtab, keď ukážete obsah tabuliek PL / SQL?
PLVtab vám umožňuje pri zobrazovaní obsahu tabuliek PL / SQL robiť nasledujúce veci
- Zobraziť alebo potlačiť hlavičku tabuľky
- Zobraziť alebo potlačiť čísla riadkov pre hodnoty tabuľky
- Zobraziť predponu pred každým riadkom tabuľky
65) Vysvetlite, ako môžete uložiť alebo umiestniť správu do tabuľky?
Ak chcete uložiť správu do tabuľky, môžete to urobiť dvoma spôsobmi
- Načítajte jednotlivé správy s volaniami procedúry add_text
- Načítajte sady správ z databázovej tabuľky pomocou procedúry load_from_dbms
66) Uveďte, aké je použitie funkcie „postup modulu“ v PL / SQL?
"Modulárna procedúra" umožňuje prevádzať všetky riadky kódu v určitej programovej jednotke s jedným volaním procedúry. Pre moduly existujú tri argumenty
- modul_v
- cor_in
- Last_module_in
67) Uveďte, čo robia PLVcmt a PLVrb v PL / SQL?
PL / Vision ponúka dva balíčky, ktoré vám pomôžu riadiť spracovanie transakcií v aplikácii PL / SQL. Je to PLVcmt a PLVrb.
- PLVcmt: Balík PLVcmt zahaľuje logiku a zložitosť riešenia spracovania potvrdenia
- PLVrb: Poskytuje programové rozhranie na vrátenie aktivity v PL / SQL