Изтеглете PDF
1) Какво е PL SQL?
PL SQL е процедурен език, който има интерактивен SQL, както и конструкции на езика за процедурно програмиране като условно разклоняване и итерация.
2) Разграничете между% ROWTYPE и TYPE RECORD.
% ROWTYPE се използва, когато заявка връща цял ред от таблица или изглед.
TYPE RECORD, от друга страна, се използва, когато заявката връща колона от различни таблици или изгледи.
Напр. ТИП r_emp е ЗАПИС (sno smp.smpno% type, sname smp sname% type)
e_rec smp% ROWTYPE
Курсорът c1 е избран smpno, отделен от smp;
e_rec c1% ROWTYPE
3) Обяснете използването на курсора.
Курсорът е име на частна област в SQL, от която може да се получи информация. От тях се изисква да обработват всеки ред поотделно за заявки, които връщат множество редове.
4) Показване на код на курсор за цикъл.
Курсорът декларира% ROWTYPE като индекс на цикъл имплицитно. След това отваря курсор, получава редове със стойности от активния набор в полетата на записа и се затваря, когато всички записи се обработват.
Напр. ЗА smp_rec В C1 LOOP
totalsal = totalsal + smp_recsal;
ENDLOOP;
5) Обяснете използването на задействането на базата данни.
PL / SQL програмна единица, свързана с определена таблица на базата данни, се нарича тригер на база данни. Използва се за:
1) Модифициране на данните за одит.
2) Логирайте събитията прозрачно.
3) Прилагане на сложни бизнес правила.
4) Поддържайте таблици с реплики
5) Извличане на стойности на колони
6) Прилагане на сложни разрешения за сигурност
6) Кои са двата вида изключения.
Грешка при обработката на част от PL / SQL блока се нарича Изключение. Те имат два типа: user_defined и predefined.
7) Покажете някои предварително дефинирани изключения.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
NO_DATA_FOUND
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
НЕВАЛИДЕН НОМЕР
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
и т.н.
8) Обяснете Raise_application_error.
Това е процедура на пакет DBMS_STANDARD, която позволява издаване на дефинирани от потребителя съобщения за грешка от тригер на база данни или съхранена подпрограма.
9) Покажете как се извикват функции и процедури в PL SQL блок.
Функцията се извиква като част от израз.
общо: = изчисли_сал ('b644')
Процедурата се извиква като изявление в PL / SQL.
изчисли_бонус ('b644');
10) Обяснете две виртуални таблици, налични по време на изпълнение на задействане на база данни.
Колоните на таблицата се означават като THEN.column_name и NOW.column_name.
За тригерите, свързани с INSERT, са налични само стойности NOW.column_name.
За триери, свързани с DELETE, са налични само стойности THEN.column_name.
За тригери, свързани с UPDATE, са налични и двете колони на таблицата.
11) Какви са правилата, които трябва да се прилагат за NULL, докато се правят сравнения?
1) NULL никога не е TRUE или FALSE
2) NULL не може да бъде равно или неравностойно на други стойности
3) Ако стойност в израз е NULL, тогава самият израз се оценява на NULL с изключение на оператора за конкатенация (||)
12) Как се компилира процес на PL SQL?
Процесът на компилация включва проверка на синтаксиса, свързване и генериране на p-код.
Проверката на синтаксиса проверява PL SQL кодовете за компилационни грешки. Когато всички грешки са коригирани, адрес на съхранение се присвоява на променливите, които съдържат данни. Нарича се Обвързване. P-кодът е списък с инструкции за PL SQL механизма. P-кодът се съхранява в базата данни за имена на блокове и се използва следващия път, когато бъде изпълнен.
13) Разграничаване между синтаксис и грешки по време на изпълнение.
Синтаксисната грешка може лесно да бъде открита от PL / SQL компилатор. Например, неправилно изписване.
Грешката по време на работа се обработва с помощта на раздел за обработка на изключения в PL / SQL блок. Например, оператор SELECT INTO, който не връща никакви редове.
14) Обяснете ангажиране, връщане и Savepoint.
За изявление на COMMIT е вярно следното:
- Други потребители могат да видят промените в данните, направени от транзакцията.
- Бравите, придобити от транзакцията, се освобождават.
- Работата, извършена от транзакцията, става постоянна.
Извлечение ROLLBACK се издава, когато транзакцията приключи и следното е вярно.
- Работата, извършена при преход, е отменена, сякаш никога не е била издавана.
- Всички брави, придобити чрез транзакция, се освобождават.
Той отменя цялата работа, извършена от потребителя при транзакция. Със SAVEPOINT само част от транзакцията може да бъде отменена.
15) Определете имплицитни и явни курсори.
По подразбиране курсорът е неявен. Потребителят не може да контролира или обработва информацията в този курсор.
Ако заявка върне множество редове данни, програмата дефинира изричен курсор. Това позволява на приложението да обработва всеки ред последователно, докато курсорът го връща.
16) Обяснете мутиращата грешка в таблицата.
Това се случва, когато спусък се опитва да актуализира ред, който използва в момента. Той е фиксиран чрез използване на изгледи или временни таблици, така че базата данни избира единия и актуализира другия.
17) Кога се изисква декларация за деклариране?
Операторът DECLARE се използва от анонимни блокове PL SQL, като например със самостоятелни, несъхранени процедури. Ако се използва, трябва да е на първо място в самостоятелен файл.
18) Колко задействания могат да бъдат приложени към таблица?
Към една таблица могат да се приложат максимум 12 задействания.
19) Какво е значението на SQLCODE и SQLERRM?
SQLCODE връща стойността на броя на грешките за последната срещана грешка, докато SQLERRM връща съобщението за последната грешка.
20) Ако курсорът е отворен, как можем да намерим в PL SQL блок?
може да се използва променливата на състоянието на курсора% ISOPEN.
21) Покажете двете изключения на курсора PL / SQL.
Cursor_Already_Open
Invaid_cursor
22) Какви оператори се занимават с NULL?
NVL преобразува NULL в друга определена стойност.
var: = NVL (var2, „Здравей“);
IS NULL и IS NOT NULL може да се използва, за да се провери конкретно дали стойността на променлива е NULL или не.
23) Има ли SQL * Plus също PL / SQL Engine?
Не, SQL * Plus няма вграден PL / SQL Engine. По този начин целият PL / SQL код се изпраща директно към двигателя на базата данни. Той е много по-ефективен, тъй като всяко изявление не се отделя поотделно.
24) Какви пакети са на разположение на разработчиците на PL SQL?
DBMS_ серия от пакети, като DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Обяснете 3 основни части на спусъка.
- Задействащо изявление или събитие.
- Ограничение
- Действие
26) Какво представляват функциите на символите?
INITCAP, GOR, SUBSTR, LOWER и LENGTH са всички функции на символите. Груповите функции дават резултати въз основа на групи редове, за разлика от отделните редове. Те са MAX, MIN, AVG, COUNT и SUM.
27) Обяснете TTITLE и BTITLE.
Команди TTITLE и BTITLE, които контролират горни и долни колонтитули на отчета.
28) Покажете атрибутите на курсора на PL / SQL.
% ISOPEN: Проверява дали курсорът е отворен или не
% ROWCOUNT: Броят редове, които се актуализират, изтриват или извличат.
% НАЙДЕН: Проверява дали курсорът е извлекъл някой ред. Вярно е, ако се извличат редове
% НЕ Е НАМЕРЕН: Проверява дали курсорът е извлекъл някой ред. Вярно е, ако редовете не са извлечени.
29) Какво е пресичане?
Intersect е продукт на две таблици и в него са изброени само съответстващи редове.
30) Какво представляват последователностите?
Последователностите се използват за генериране на поредни номера без допълнителни разходи за заключване. Недостатъкът му е, че поредният номер се губи, ако транзакцията се върне обратно.
31) Как бихте препратили стойностите на колоните ПРЕДИ И СЛЕД като сте вмъкнали и изтрили тригери?
Използвайки ключовата дума "new.column name", тригерите могат да препращат стойности на колони от нова колекция. Използвайки ключовата дума "old.column name", те могат да препращат стойности на колони по стара колекция.
32) За какво се използват ключовите думи SYSDATE и USER?
SYSDATE се отнася до текущата системна дата на сървъра. Това е псевдо колона. USER също е псевдо колона, но се отнася до текущия потребител, влязъл в сесията. Те се използват за наблюдение на промените, които се случват в таблицата.
33) Как ROWID помага при по-бързото изпълнение на заявка?
ROWID е логическият адрес на ред, не е физическа колона. Той се състои от номер на блок данни, номер на файл и номер на ред в блока с данни. По този начин времето за I / O се свежда до минимум при извличане на реда и води до по-бърза заявка.
34) За какво се използват връзките към базата данни?
Връзките към базата данни се създават, за да формират комуникация между различни бази данни или различни среди като тестване, разработка и производство. Връзките към базата данни са само за четене, за да имат достъп и до друга информация.
35) Какво прави извличането на курсора?
Извличането на курсор чете Резултат Задаване ред по ред.
36) Какво прави затварянето на курсора?
Затварянето на курсора изчиства частната SQL област, както и де-разпределя паметта
37) Обяснете използването на контролния файл.
Това е двоичен файл. Той записва структурата на базата данни. Той включва местоположения на няколко регистрационни файла, имена и времеви клейма. Те могат да се съхраняват на различни места, за да помогнат при извличането на информация, ако един файл се повреди.
38) Обяснете последователност
Последователността показва, че данните няма да бъдат отразени на други потребители, докато данните не бъдат ангажирани, така че да се запази последователността.
39) Разлика между анонимни блокове и подпрограми.
Анонимните блокове са неназовани блокове, които не се съхраняват никъде, докато подпрограмите се компилират и съхраняват в базата данни. Те се компилират по време на изпълнение.
40) Различават се между DECODE и CASE.
Изявленията DECODE и CASE са много сходни, но CASE е разширена версия на DECODE. DECODE не позволява вземането на решения на негово място.
изберете декодиране (общо = 12000, 'високо', 10000, 'средно') като decode_tesr от smp, където smpno в (10,12,14,16);
Този оператор връща грешка.
CASE се използва директно в PL SQL, но DECODE се използва само в PL SQL чрез SQL.
41) Обяснете автономна транзакция.
Автономната транзакция е независима транзакция на основната или родителската транзакция. Той не е вложен, ако е стартиран от друга транзакция.
Има няколко ситуации за използване на автономни транзакции като регистриране на събития и одит.
42) Разграничаване между SGA и PGA.
SGA означава глобална зона на системата, докато PGA означава глобална зона на програма или процес. На PGA са разпределени само 10% RAM размер, но на SGA е даден 40% RAM размер.
43) Какво е местоположението на Pre_defined_functions.
Те се съхраняват в стандартния пакет, наречен "Функции, процедури и пакети"
44) Обяснете полиморфизма в PL SQL.
Полиморфизмът е характеристика на ООП. Това е способността да се създаде променлива, обект или функция с множество форми. PL / SQL поддържа Полиморфизъм под формата на претоварване на програмна единица във функция или пакет на член ... Трябва да се избягва недвусмислена логика, докато се прави претоварване.
45) Какви са ползите от MERGE?
MERGE се използва за комбиниране на множество DML изрази в едно.
Синтаксис: обединяване в име на таблица
използване (заявка)
включено (условие за присъединяване)
когато не съвпада тогава
команда [вмъкване / актуализиране / изтриване]
когато съвпадат тогава
команда [вмъкване / актуализиране / изтриване]
46) Могат ли да бъдат изпълнени едновременно 2 заявки в разпределена система от бази данни?
Да, те могат да бъдат изпълнени едновременно. Една заявка винаги е независима от втората заявка в разпределена система от бази данни, базирана на двуфазовия ангажимент.
47) Обяснете Raise_application_error.
Това е процедура на пакета DBMS_STANDARD, която позволява издаване на дефинирани от потребителя съобщения за грешка от тригера на базата данни или съхранената подпрограма.
48) Какъв е параметърът out, който се използва дори за оператор return, може да се използва и в pl / sql?
Изходните параметри позволяват повече от една стойност в извикващата програма. Параметърът Out не се препоръчва във функциите. Процедурите могат да се използват вместо функции, ако се изискват множество стойности. По този начин тези процедури се използват за изпълнение на параметри Out.
49) Как бихте преобразували датата в юлиански формат за дата?
Можем да използваме низа във формат J:
SQL> изберете to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') като julian от dual;
ЮЛИАН
50) Обяснете SPOOL
Командата Spool може да отпечата изхода на sql изрази във файл.
макара / tmp / sql_outtxt
изберете smp_name, smp_id от smp където dept = 'акаунти';
макара на разстояние;
51) Споменете от какво се състои пакетът PL / SQL?
PL / SQL пакетът се състои от
- PL / SQL таблица и запис на TYPE изрази
- Процедури и функции
- Курсори
- Променливи (таблици, скалари, записи и т.н.) и константи
- Имена на изключения и прагми за свързване на номер на грешка с изключение
- Курсори
52) Споменете какви са предимствата на PL / SQL пакетите?
Той осигурява няколко предимства като
- Принудително скриване на информация: Предлага свобода да изберете дали данните да останат частни или обществени
- Дизайн отгоре надолу: Можете да проектирате интерфейса към кода, скрит в пакета, преди действително да внедрите самите модули
- Устойчивост на обекта: Обектите, декларирани в спецификация на пакета, се държат като глобални данни за всички PL / SQL обекти в приложението. Можете да модифицирате пакета в един модул и след това да препратите тези промени към друг модул
- Обектно ориентиран дизайн: Пакетът дава на разработчиците силна задръжка как могат да се използват модулите и структурите от данни в пакета
- Гарантиране на целостта на транзакцията: Тя осигурява ниво на целостта на транзакциите
- Подобряване на производителността: RDBMS автоматично проследява валидността на всички програмни обекти, съхранявани в базата данни и подобрява производителността на пакетите.
53) Споменете кои са различните методи за проследяване на PL / SQL кода?
Проследяващият код е решаваща техника за измерване на ефективността на кода по време на изпълнение. Различните методи за проследяване включват
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION и DBMS_MONITOR
- trcsess и tkproof помощни програми
54) Споменете какво прави йерархичният профилист?
Йерархичният профилир може да профилира повикванията, извършени в PL / SQL, освен да запълни празнината между вратичките и очакванията за проследяване на производителността. Ефективността на йерархичния профилист включва
- Отделно отчитане за SQL и PL / SQL консумация на време
- Отчетите броят на отделни повиквания на подпрограми, извършени в PL / SQL, и времето, прекарано с всяко обаждане на подпрограмата
- Множество интерактивни отчети за анализ в HTML формат с помощта на помощната програма на командния ред
- По-ефективен от конвенционалните програми за профилиране и други инструменти за проследяване
55) Споменете какво ви позволява PLV msg?
Съобщението PLV ви позволява да
- Присвояване на индивидуално текстово съобщение на посочен ред в таблицата PL / SQL
- Той извлича текста на съобщението по номер
- Той автоматично замества вашите собствени съобщения със стандартни съобщения за грешки на Oracle с ограничаващо превключване
- Номера на съобщенията за партидно зареждане и текст от таблица на базата данни директно PLV msg PL / SQL таблица
56) Споменете какво предлага пакетът PLV (PL / Vision)?
- Нулева стойност на заместване
- Набор от процедури за твърдение
- Разни комунални услуги
- Набор от константи, използвани в цялото зрение на PL
- Предварително дефинирани типове данни
- 57) Споменете каква е ползата от PLVprs и PLVprsps?
- PLVprs: Това е разширение за анализиране на низове за PL / SQL и е най-ниското ниво на функционалност за синтактичен анализ
- PLVprsps: Това е пакет от най-високо ниво за анализиране на PL / SQL изходния код в отделни атоми. Той разчита на други анализи на пакети, за да свърши работата.
58) Обяснете как можете да копирате файл в съдържанието на файла и файл в PL / SQL таблица предварително PL / SQL?
С едно извикване на програма - " fcopy процедура", можете да копирате цялото съдържание на един файл в друг файл. Докато да копирате съдържанието на файл директно в PL / SQL таблица, можете да използвате програмата " file2pstab" .
59) Обяснете как се извършва обработка на изключения предварително PL / SQL?
За обработка на изключения PL / SQl предоставя ефективен плъгин PLVexc. PLVexc поддържа четири различни действия за обработка на изключения.
- Продължете обработката
- Запишете и след това продължете
- Спиране на обработката
- Запис и след това спиране на обработката
За тези изключения, които се появяват повторно, можете да използвате израза RAISE.
60) Споменете с какъв проблем може да се сблъска човек, докато записва информация в дневника в таблица на база данни в PL / SQL?
Докато записвате информация за регистрационния файл в таблица на базата данни, проблемът, с който се сблъсквате, е, че информацията е достъпна само след като новите редове бъдат ангажирани с базата данни. Това може да е проблем, тъй като такъв PLVlog обикновено се внедрява за проследяване на грешки и в много такива случаи текущата транзакция ще се провали или по друг начин ще се наложи връщане назад.
61) Споменете каква е функцията, която се използва за прехвърляне на дневник на PL / SQL таблица в таблица на базата данни?
За прехвърляне на дневник на PL / SQL таблица се използва функция на таблицата на дневника на базата данни "ПРОЦЕДУРА ps2db" .
62) Когато трябва да използвате точка по подразбиране "откат до" точка за запис на PLVlog?
Точката на запазване по подразбиране на "PLOVlog" на PLVlog се използва, когато потребителите са включили дейността за връщане и не са предоставили алтернативна точка за запис в повикването към put_line. Точката за запис по подразбиране се инициализира до c none константа.
63) Защо PLVtab се счита за най-лесният начин за достъп до таблицата PL / SQL?
Таблицата PL / SQL е най-близо до масивите в PL / SQL и за достъп до тази таблица трябва първо да декларирате тип таблица, а след това трябва да декларирате самата таблица PL / SQL. Но като използвате PLVtab, можете да избегнете дефинирането на вашия собствен тип PL / SQL таблица и да улесните достъпа до PL / SQL таблица с данни.
64) Споменете какво ви позволява PLVtab, когато показвате съдържанието на PL / SQL таблици?
PLVtab ви позволява да правите следните неща, когато показвате съдържанието на PL / SQL таблици
- Показване или потискане на заглавка за таблицата
- Показване или потискане на номерата на редовете за стойностите в таблицата
- Показвайте префикс преди всеки ред от таблицата
65) Обяснете как можете да запазите или поставите вашето съобщение в таблица?
За да запазите съобщението в таблица, можете да го направите по два начина
- Заредете отделни съобщения с повиквания към процедурата add_text
- Заредете набори от съобщения от таблица на базата данни с процедурата load_from_dbms
66) Споменете каква е ползата от функцията "модулна процедура" в PL / SQL?
"Модулната процедура" позволява да се преобразуват всички редове на код в определена програмна единица с едно извикване на процедура. Има три аргумента за модулите
- module_in
- cor_in
- Last_module_in
67) Споменете какво прави PLVcmt и PLVrb в PL / SQL?
PL / Vision предлага два пакета, които ви помагат да управлявате обработката на транзакции в PL / SQL приложение. Това е PLVcmt и PLVrb.
- PLVcmt: PLVcmt пакетът обхваща логика и сложност за работа с обработка на фиксиране
- PLVrb: Той осигурява програмен интерфейс за връщане назад в PL / SQL