30 most important pl sql interview questions
Топ въпроси за PL / SQL интервю с примери, които да ви помогнат да се подготвите за предстоящото интервю:
Какво е PL / SQL?
PL / SQL (процедурен език / SQL) е основно процедурно разширение на Oracle - SQL. PL / SQL помага на потребителя да разработва сложни приложения за бази данни, използвайки контролни структури, процедури, функции, модули и др.
Тази статия ще обсъди най-добрите въпроси и отговори за интервюта за PL / SQL.
PL / SQL интервю въпроси и отговори
Да започваме!!
В # 1) Разграничаване на PL / SQL и SQL?
Отговор: Разликата между SQL и PL / SQL може да бъде категоризирана, както следва:
SQL | PL / SQL |
---|---|
SQL е естествен език, който е много полезен за интерактивна обработка. | PL / SQL е процедурно разширение на Oracle - SQL. |
SQL не предлага процедурни възможности като тестване на състоянието, цикъл. | PL / SQL поддържа процедурни възможности, както и високоезични функции като условни оператори, циклични оператори и т.н. |
Всички SQL изрази се изпълняват от сървъра на базата данни един по един, поради което процесът отнема много време. | PL / SQL операторите изпращат целия блок от инструкции едновременно към сървъра на базата данни, като по този начин мрежовият трафик намалява значително. |
В SQL няма процедури за обработка на грешки. | PL / SQL поддържа персонализирана обработка на грешки. |
В # 2) Да се изброят характеристиките на PL / SQL?
Отговор:
Характеристиките на PL / SQL са както следва:
- PL / SQL позволява достъп и споделяне на едни и същи подпрограми от множество приложения.
- Известно е с преносимостта на кода, тъй като кодът може да се изпълнява на всяка операционна система, при условие че Oracle е зареден в нея.
- С PL / SQL потребителите могат да пишат свои собствени персонализирани процедури за обработка на грешки.
- Подобрена ефективност на транзакциите с интеграция в речника на данни на Oracle.
В # 3) Какви са типовете данни, налични в PL / SQL?
Отговор: Типовете данни определят начините за идентифициране на типа данни и свързаните с тях операции.
Има 4 типа предварително дефинирани типове данни, обяснени по следния начин:
- Скаларни типове данни: Скаларен тип данни е атомен тип данни, който няма никакви вътрешни компоненти.
- Например
- CHAR (диапазон на стойността на символите с фиксирана дължина между 1 и 32 767 знака)
- VARCHAR2 (диапазон на стойността на знаците с променлива дължина между 1 и 32,767 знака)
- NUMBER (фиксиран десетичен, плаващ десетичен или цели числа)
- BOOLEAN (логически тип данни за TRUE FALSE или NULL стойности)
- ДАТА (съхранява информация за дата и час)
- LONG (символни данни с променлива дължина)
- Композитни типове данни: Композитният тип данни се състои от други типове данни и вътрешни компоненти, които могат лесно да се използват и манипулират. Например, ЗАПИСИ, ТАБЛИЦА И ВАРАЙ.
- Типове референтни данни: Референтен тип данни съдържа стойности, наречени указатели, които определят към други програмни елементи или елементи от данни. Например, РЕФ КУРСОР.
- Типове данни за големи обекти: Типът данни с голям обект съдържа стойности, наречени локатори, които определят местоположението на големи обекти (като видеоклипове, графични изображения и т.н.), съхранявани извън реда.
- Например
- BFILE (двоичен файл)
- BLOB (двоичен голям обект)
- CLOB (Символен голям обект)
- NCLOB (голям обект от тип NCHAR)
Препоръчително четене = >> PL SQL типове данни
Q # 4) Обяснете целта на типовете данни% TYPE и% ROWTYPE с примера?
Отговор: PL / SQL използва атрибута на декларация% TYPE за закрепване. Този атрибут предоставя типа данни на променлива, константа или колона. Атрибутът% TYPE е полезен при деклариране на променлива, която има същия тип данни като колона на таблица.
Например, променливата m_empno има същия тип данни и размер като колоната емпно в таблица изп.
m_empno emp.empno%TYPE;
Атрибутът% ROWTYPE се използва за деклариране на променлива като запис със същата структура като ред в таблица. Редът е дефиниран като запис и неговите полета имат същите имена и типове данни като колоните в таблицата или изгледа.
Например:
dept_rec dept%ROWTYPE;
Това декларира запис, който може да съхранява цял ред за таблицата DEPT.
В # 5) Какво разбирате под пакети PL / SQL?
Отговор: PL / SQL пакетите са обекти на схемата, които групират функции, съхранени процедури, курсори и променливи на едно място.
Пакетите имат 2 задължителни части:
- Спецификации на опаковката
- Тяло на опаковката
В # 6) Какво разбирате от курсорите PL / SQL?
Отговор: PL / SQL изисква специална възможност за извличане и обработка на повече от един ред и този ресурс е известен като Курсори. Курсорът е указател към контекстната област, която е област от паметта, съдържаща SQL изрази и информация за обработка на изразите.
PL / SQL Cursor е основно механизъм, при който се избират множество редове от данните от базата данни и след това всеки ред се обработва индивидуално в рамките на програма.
В # 7) Обяснете типовете курсори.
когато отделен елемент от масив се предава на метод:
Отговор: Има два вида курсори.
Те се обясняват по следния начин:
а) Изрични курсори: За заявки, които връщат повече от един ред, изричен курсор се декларира и именува от програмист. За да се използва явен курсор в PL / SQL, се следват 4 стъпки
- Декларирайте курсора
Синтаксис: КУРСОРЪТ е
Оператор SELECT;
Тук името е присвоено на курсора, а операторът SELECT е заявката, която връща редове към активния набор от курсора.
- Отворете курсора
Синтаксис: ОТВОРЕН;
Къде, е името на предварително дефинирания курсор.
- Извличане на редове от курсора
Синтаксис: ВЗИМАНЕ В;
Тук се отнася до името на предварително дефинирания курсор, от който се извличат редове.
представлява списък с променливи, които ще получат извличаните данни.
- Затваряне на курсора
Синтаксис: БЛИЗО ;
Тук е името на курсора, който се затваря.
б) Неявни курсори: Когато се изпълни някакъв SQL оператор, PL / SQL автоматично създава курсор, без да дефинира такива курсори, известни като неявни курсори.
За следващите твърдения PL / SQL използва неявни курсори
- ВМЕСТЕТЕ
- АКТУАЛИЗИРАНЕ
- ИЗТРИЙ
- SELECT (заявки, които връщат точно един ред)
В # 8) Кога използваме тригери?
Отговор: Думата „Trigger“ означава да активирате. В PL / SQL задействането е съхранена процедура, която определя действие, предприето от базата данни, когато се извършва събитие, свързано с базата данни.
Задействанията се изискват основно за следните цели:
- За поддържане на сложни ограничения на целостта
- Проверка на информацията в таблицата чрез записване на промените
- Сигнализиране на други програмни действия при извършване на промени в таблицата
- Прилагане на сложни бизнес правила
- Предотвратяване на невалидни транзакции
В # 9) Обяснете разликата в изпълнението на тригери и съхранени процедури?
Отговор: Съхранената процедура се изпълнява изрично чрез издаване на оператор за извикване на процедура от друг блок чрез извикване на процедура с аргументи.
Задействането се изпълнява неявно, когато се случи някакво задействащо събитие, като възникването на DML изрази.
В # 10) Обяснете разликата между тригерите и ограниченията?
Отговор: Задействанията се различават от ограниченията по следните начини:
Задействания | Ограничения |
---|---|
Засягат само тези редове, добавени след активирането на задействането. | Засяга всички редове на таблицата, включително тези, които вече съществуват, когато ограничението е активирано. |
Задействанията се използват за прилагане на сложни бизнес правила, които не могат да бъдат приложени, като се използват ограничения на целостта. | Ограниченията поддържат целостта на базата данни. |
В # 11) Какво е PL / SQL блок?
Отговор: В PL / SQL изразите са групирани в единици, наречени блокове. PL / SQL блоковете могат да включват константи, променливи, SQL изрази, цикли, условни изрази, обработка на изключения. Блоковете също могат да изграждат процедура, функция или пакет.
Най-общо казано PL / SQL блоковете са два вида:
(i) Анонимни блокове: PL / SQL блоковете без заглавка са известни като анонимни блокове. Тези блокове не образуват тялото на процедура, функция или задействания.
Пример:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Именувани блокове: PL / SQL блоковете, имащи заглавка или етикети, са известни като Именувани блокове. Именуваните блокове могат да бъдат или подпрограми (процедури, функции, пакети) или тригери.
Препоръчително четене = >> PL SQL процедури и функции
Пример:
защо слънчевите филми не работят
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
В # 12) Разграничаване между синтаксисните и грешките по време на изпълнение?
Отговор:
Синтаксични грешки са тези, които могат лесно да бъдат идентифицирани от PL / SQL компилатор. Тези грешки могат да бъдат правописна грешка и т.н.
Грешки по време на изпълнение са тези грешки в PL / SQL блок, за които трябва да бъде включен раздел за обработка на изключения за обработка на грешките. Тези грешки могат да бъдат оператор SELECT INTO, който не връща никакви редове.
В # 13) Какво представляват COMMIT, ROLLBACK и SAVEPOINT?
Отговор: COMMIT, SAVEPOINT и ROLLBACK са три спецификации на транзакции, налични в PL / SQL.
COMMIT изявление: Когато се извършва DML операция, тя манипулира само данни в буфера на базата данни и базата данни остава незасегната от тези промени. За да запазим / съхраним тези промени в транзакцията в базата данни, трябва да НАПРАВИМ транзакцията. COMMIT транзакцията запазва всички неизпълнени промени от последния COMMIT и се случва следният процес
- Заключените ключалки на редове се освобождават
- Транзакцията е означена като завършена
- Подробностите за транзакциите се съхраняват в речника на данните.
Синтаксис: АНГАЖИРАНЕ
Извлечение ROLLBACK: Когато искаме да отменим или изтрием всички промени, настъпили в текущата транзакция досега, ние изискваме връщането на транзакцията. С други думи, ROLLBACK изтрива всички оставащи промени от последния COMMIT или ROLLBACK.
Синтаксис за пълно връщане на транзакция изцяло:
ВРЪЩАНЕ;
Изявление SAVEPOINT: Операторът SAVEPOINT дава име и маркира точка при обработката на текущата транзакция. Промените и заключванията, настъпили преди SAVEPOINT в транзакцията, се запазват, докато тези, които възникват след SAVEPOINT, се освобождават.
Синтаксис:
SAVEPOINT;
В # 14) Каква е мутиращата таблица и ограничаващата таблица?
Отговор: Таблица, която в момента се модифицира чрез DML оператор като дефиниране на задействания в таблица, е известна като Мутираща маса .
Таблица, от която може да се наложи да се чете за референтно ограничение на целостта, е известна като ограничаваща маса .
В # 15) Какви са действителните параметри и формалните параметри?
Отговор: Променливите или израз, посочен като параметри, които се появяват в извикването на процедурата, е известен като Действителни параметри .
Например: рейз_сал (emp_num, заслуга + сума);
Тук в горния пример, emp_num и сумата са двата действителни параметъра.
Променливите, които са декларирани в заглавката на процедурата и са посочени в тялото на процедурата, се извикват като Формални параметри .
Например:
ПРОЦЕДУРА rise_sal (emp_id INTEGER) Е
curr_sal РЕАЛНО:
……… ..
НАЧАЛО
ИЗБЕРЕТЕ sal В КО cur_sal ОТ emp WHERE empno = emp_id;
...
END рейз_сал;
Тук в горния пример emp_id действа като формален параметър.
В # 16) Каква е разликата между операторите ROLLBACK и ROLLBACK TO?
Отговор: Транзакцията е напълно завършена след оператора ROLLBACK, т.е. командата ROLLBACK напълно отменя транзакцията и освобождава всички заключвания.
От друга страна, транзакцията все още е активна и се изпълнява след командата ROLLBACK TO, тъй като отменя само част от транзакцията до дадения SAVEPOINT.
В # 17) Напишете PL / SQL скрипт, за да се покажат следните серии от числа: 99,96,93 ...... 9,6,3?
Отговор
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; /
В # 18) Кои са трите режима на параметър?
Отговор: 3 режима на параметъра са IN, OUT, IN OUT.
Те могат да бъдат обяснени по следния начин:
- IN параметри: IN параметрите ви позволяват да предавате стойности на извикваната процедура и могат да бъдат инициализирани до стойности по подразбиране. Параметрите IN действат като константа и не могат да получат никаква стойност.
- OUT параметри: OUT параметрите връщат стойност на повикващия и те трябва да бъдат посочени. OUT параметрите действат като неинициализирана променлива и не могат да бъдат използвани в израз.
- IN OUT параметри: IN OUT параметрите предава начални стойности на процедура и връща актуализирани стойности на повикващия. Параметрите IN OUT действат като инициализирана променлива и трябва да им бъде присвоена стойност.
В # 19) Защо% ISOPEN винаги е фалшив за неявен курсор?
Отговор: Неявен курсор, атрибутът SQL% ISOPEN винаги е фалшив, защото неявният курсор се отваря за DML оператор и се затваря веднага след изпълнението на DML оператора.
В # 20) Когато се изпълнява DML оператор, в кои атрибути на курсора се записва резултатът от оператора?
Отговор: Резултатът от изявлението се записва в 4 атрибута на курсора.
Това са:
- SQL% НАМЕРЕН
- SQL% НЕ НАМЕРЕН
- SQL% ROWCOUNT
- SQL% ISOPEN
В # 21) Какви са начините за коментиране в PL / SQL код?
Отговор: Коментарите са текстът, който е включен в кода за подобряване на четливостта и за разбиране на читателя. Тези кодове никога не се изпълняват.
Има два начина да коментирате в PL / SQL:
1) Едноредов коментар: Този коментар започва с двойно -.
Пример:
ДЕКЛАРИРАЙТЕ
номер НОМЕР (2); - това е локална променлива.
НАЧАЛО
примери за c ++ програми, използващи функции
2) Многоредов коментар: Този коментар започва с / * и завършва с * /.
Пример:
НАЧАЛО
num: = & p_num; / * Това е хост променлива, използвана в тялото на програмата * /
……….
КРАЙ
В # 22) Какво разбирате под обработка на изключения в PL / SQL?
Отговор: Когато възникне грешка в PL / SQL, възниква изключение. С други думи, за да се справят с нежелани ситуации, при които PL / SQL скриптове се прекратяват неочаквано, в програмата е включен код за обработка на грешки. В PL / SQL целият код за обработка на изключения се поставя в раздел EXCEPTION.
Има 3 вида ИЗКЛЮЧЕНИЕ:
- Предварително дефинирани изключения: Често срещани грешки с предварително дефинирани имена.
- Недефинирани изключения: По-рядко срещани грешки без предварително дефинирани имена.
- Дефинирани от потребителя изключения: Не причинявайте грешка по време на работа, но нарушавайте бизнес правилата.
В # 23) Да изброите някои предварително дефинирани изключения?
Отговор:
Някои от предварително дефинираните изключения са:
- NO_DATA_FOUND: Одноредов оператор SELECT, при който не се връщат данни.
- TOO_MANY_ROWS: Одноредов оператор SELECT, където се връщат повече от един ред.
- INVALID_CURSOR: Възникна незаконна операция с курсора.
- ZERO_DIVIDE: Опит за разделяне на нула.
В # 24) Какво представляват изключенията на PL / SQL курсора?
Отговор:
Изключенията, свързани с курсори PL / SQL, са:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
В # 25) Обяснете разликата между курсора, деклариран в процедурите, и курсорите, декларирани в спецификацията на пакета?
Отговор: Декларираният в процедурата курсор се третира като локален и по този начин не може да бъде достъпен от други процедури.
Курсорът, деклариран в спецификацията на пакета, се третира като глобален и по този начин може да бъде достъпен чрез други процедури.
В # 26) Какво представляват ВМЕСТО СТЪПКИ?
Отговор: Тригерите INSTEAD OF са тригерите, написани специално за модифициране на изгледи, които не могат да бъдат директно модифицирани чрез SQL DML изрази.
В # 27) Какво представляват изразите?
Отговор: Изразите са представени от последователност от литерали и променливи, които са разделени от оператори. В PL / SQL операциите се използват за манипулиране, сравняване и изчисляване на някои данни. Изразът е композиция от „Оператори“ и „Операнди“.
- Операнди: Това са аргумент на операторите. Операндите могат да бъдат променлива, извикване на функция или константа.
- Оператори: Те определят действията, които трябва да бъдат извършени върху операторите. Пример: „+“, „*“ И т.н.
Q # 28) Избройте различен тип изрази с примера.
Отговор: Изразите могат да бъдат посочени по-долу:
- Числови или аритметични изрази: Пример: 20 * 10+ 15
- Булеви изрази: Пример: „Място“ КАТО „sp% t“
- Низови изрази: Пример: ДЪЛЖИНА (‘НЮ ЙОРК’ || ‘НЮ’)
- Изрази за дата: Пример: SYSDATE> TO_DATE (’15 -NOV-16 ’,„ dd-mm-yy “)
Въпрос # 29) Напишете програма, която показва използването на цикъла WHILE за изчисляване на средната стойност на въведените от потребителя номера и въвеждането на повече числа се спира чрез въвеждане на номер 0?
Отговор
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;
В # 30) Какво разбирате от PL / SQL Records?
Отговор: PL / SQL записите могат да бъдат посочени като колекция от стойности или, да речем, група от множество части от информация, всяка от които е от по-прости типове и може да бъде свързана помежду си като полета.
Има три вида записи, поддържани в PL / SQL:
- Записи на базата на таблица
- Записи, базирани на програмист
- Записи, базирани на курсора
Заключение
PL / SQL е много голям, когато става въпрос за обучение и приложение. Надявам се, че тези въпроси и отговори за интервю ще ви помогнат да преминете.
За да научите повече за PL SQL, прочетете нашата изчерпателна информация PL / SQL урок серия .
Честито обучение !!
Препоръчително четене
- Въпроси и отговори за интервюта
- Въпроси и отговори за интервю за ETL тестване
- Топ 30+ популярни въпроси и отговори за интервю за краставици
- Топ 30 SAS интервюта въпроси и отговори
- Водещи въпроси за интервюта за Oracle: Въпроси за Oracle Basic, SQL, PL / SQL
- Топ 30 Въпроси и отговори за тестване на сигурността
- 30+ Топ въпроси и отговори за интервю за Scrum [СПИСЪК 2021]
- Топ 30 СУБД Интервю въпроси и отговори