30 most important pl sql interview questions
Найпопулярніші запитання щодо інтерв’ю PL / SQL із прикладами, які допоможуть вам підготуватися до майбутнього співбесіди:
Що таке PL / SQL?
PL / SQL (Процедурна мова / SQL) є в основному процедурним розширенням Oracle - SQL. PL / SQL допомагає користувачеві розробляти складні додатки баз даних, використовуючи структури управління, процедури, функції, модулі тощо.
У цій статті буде обговорено найпопулярніші питання та відповіді на співбесіди на рівні PL / SQL.
Запитання та відповіді на інтерв’ю PL / SQL
Давайте розпочнемо!!
Q # 1) Диференціювати PL / SQL та SQL?
Відповідь: Різницю між SQL та PL / SQL можна класифікувати наступним чином:
SQL | PL / SQL |
---|---|
SQL - це природна мова, яка дуже корисна для інтерактивної обробки. | PL / SQL є процедурним розширенням Oracle - SQL. |
SQL не пропонує жодних процедурних можливостей, таких як тестування умов, циклічність. | PL / SQL підтримує процедурні можливості, а також високомовні функції, такі як умовні оператори, циклічні оператори тощо. |
Всі оператори SQL виконуються сервером бази даних по одному, отже це трудомісткий процес. | Оператори PL / SQL одночасно надсилають весь блок операторів на сервер баз даних, таким чином, мережевий трафік значно зменшується. |
У SQL немає процедур обробки помилок. | PL / SQL підтримує індивідуальну обробку помилок. |
Q # 2) Включити характеристики PL / SQL?
Відповідь:
Характеристики PL / SQL такі:
- PL / SQL дозволяє отримувати доступ до одних і тих самих підпрограм і обмінюватися ними різними програмами.
- Він відомий переносимістю коду, оскільки код може виконуватися в будь-якій операційній системі за умови завантаження в нього Oracle.
- За допомогою PL / SQL користувачі можуть писати власні налаштовані процедури обробки помилок.
- Покращена продуктивність транзакцій завдяки інтеграції до словника даних Oracle.
Q # 3) Які типи даних доступні в PL / SQL?
Відповідь: Типи даних визначають способи ідентифікації типу даних та пов'язаних з ними операцій.
Існує 4 типи попередньо визначених типів даних, що пояснюються наступним чином:
- Скалярні типи даних: Скалярний тип даних - це атомний тип даних, який не має жодних внутрішніх компонентів.
- Наприклад
- CHAR (діапазон значень символів фіксованої довжини від 1 до 32 767 символів)
- VARCHAR2 (діапазон значень змінної довжини від 1 до 32 767 символів)
- NUMBER (фіксовані десяткові, плаваючі десяткові чи цілі значення)
- BOOLEAN (логічний тип даних для значень TRUE FALSE або NULL)
- DATE (зберігає інформацію про дату та час)
- 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.
Q # 5) Що ви розумієте під пакетами PL / SQL?
Відповідь: Пакети PL / SQL - це об'єкти схеми, які об'єднують функції, збережені процедури, курсори та змінні в одному місці.
Пакети мають 2 обов’язкові частини:
- Технічні характеристики упаковки
- Корпус упаковки
Q # 6) Що ви розумієте під курсорами PL / SQL?
Відповідь: PL / SQL вимагає спеціальних можливостей для отримання та обробки більше одного рядка, і цей ресурс відомий як курсори. Курсор - це вказівник на область контексту, яка є областю пам'яті, що містить оператори SQL та інформацію для обробки операторів.
Курсор PL / SQL - це, в основному, механізм, за допомогою якого виділяються кілька рядків даних з бази даних, а потім кожен рядок обробляється окремо всередині програми.
Q # 7) Поясніть типи курсору.
різниця між sql і sql сервером
Відповідь: Існує два типи курсорів.
Вони пояснюються наступним чином:
а) Явні курсори: Для запитів, що повертають більше одного рядка, явний курсор оголошує і називає програміст. Для того, щоб використовувати явний курсор у PL / SQL, виконуються 4 кроки
- Оголосіть курсор
Синтаксис: КУРСОР є
Оператор SELECT;
Тут ім'я, призначене курсору, а оператор SELECT - це запит, який повертає рядки до активного набору курсору.
- Відкрийте курсор
Синтаксис: ВІДЧИНЕНО ;
Де, - це назва попередньо визначеного курсору.
- Витягніть рядки з курсору
Синтаксис: ОТРИМАТИ У;
Тут посилається на назву раніше визначеного курсору, з якого отримуються рядки.
представляє список змінних, які отримають дані, що отримуються.
- Закриття курсору
Синтаксис: ЗАКРИТИ;
Ось назва курсора, який закривається.
б) неявні курсори: Коли виконується будь-який оператор SQL, PL / SQL автоматично створює курсор без визначення таких курсорів, які називаються неявними курсорами.
Для наступних тверджень PL / SQL використовує неявні курсори
- ВСТАВИТИ
- ОНОВЛЕННЯ
- ВИДАЛИТИ
- SELECT (запити, що повертають рівно один рядок)
Q # 8) Коли ми використовуємо тригери?
Відповідь: Слово «тригер» означає активувати. У PL / SQL тригер - це збережена процедура, яка визначає дію, що здійснюється базою даних під час виконання події, пов’язаної з базою даних.
Тригери в основному потрібні для таких цілей:
- Підтримувати складні обмеження цілісності
- Аудит інформації таблиці шляхом запису змін
- Сигналізація про інші дії програми при внесенні змін до таблиці
- Застосування складних бізнес-правил
- Запобігання недійсним операціям
Q # 9) Поясніть різницю у виконанні тригерів та збережених процедур?
програма для копіювання DVD на комп'ютер - -
Відповідь: Зберігається процедура виконується явно шляхом видачі оператора виклику процедури з іншого блоку через виклик процедури з аргументами.
Тригер виконується неявно, коли трапляється будь-яка подія запуску, подібна появі операторів DML.
Q # 10) Поясніть різницю між тригерами та обмеженнями?
Відповідь: Тригери відрізняються від обмежень наступними способами:
Тригери | Обмеження |
---|---|
Впливати лише на ті рядки, додані після того, як активовано активатор. | Впливає на всі рядки таблиці, включаючи ті, які вже існують, коли обмеження ввімкнено. |
Тригери використовуються для реалізації складних бізнес-правил, які неможливо реалізувати за допомогою обмежень цілісності. | Обмеження підтримують цілісність бази даних. |
Q # 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;
Q # 12) Розрізнити синтаксичні помилки та помилки виконання?
Відповідь:
Синтаксичні помилки - це той, який легко ідентифікується компілятором PL / SQL. Ці помилки можуть бути орфографічною помилкою тощо.
Помилки виконання це ті помилки в блоці PL / SQL, для яких для обробки помилок слід включити розділ обробки винятків. Ці помилки можуть бути оператором SELECT INTO, який не повертає жодних рядків.
Q # 13) Що таке COMMIT, ROLLBACK і SAVEPOINT?
Відповідь: COMMIT, SAVEPOINT і ROLLBACK - це три специфікації транзакцій, доступні в PL / SQL.
Заява COMMIT: Коли виконується операція DML, вона лише обробляє дані в буфері бази даних, і ці зміни не впливають на базу даних. Щоб зберегти / зберегти ці зміни транзакції в базі даних, нам потрібно УЧАСТИ транзакцію. Транзакція COMMIT зберігає всі залишені зміни з моменту останньої COMMIT і відбувається наступний процес
- Зачеплені ряди замків звільняються
- Трансакція позначена як завершена
- Деталі транзакції зберігаються у словнику даних.
Синтаксис: Здійснити;
Оператор ROLLBACK: Коли ми хочемо скасувати або стерти всі зміни, що відбулися в поточній транзакції до цього часу, нам потрібно скасувати транзакцію. Іншими словами, ROLLBACK стирає всі значущі зміни після останнього COMMIT або ROLLBACK.
Синтаксис для повного відкоту транзакції:
Відкат;
Заява SAVEPOINT: Оператор SAVEPOINT дає ім'я та позначає момент у обробці поточної транзакції. Зміни та блокування, які відбулися до SAVEPOINT в транзакції, зберігаються, тоді як ті, що відбуваються після SAVEPOINT, звільняються.
Синтаксис:
SAVEPOINT;
Q # 14) Що таке мутуюча таблиця та обмежувальна таблиця?
Відповідь: Таблиця, яка наразі модифікується за допомогою оператора DML, наприклад визначення тригерів у таблиці, відома як Мутуючий стіл .
Таблиця, з якої може знадобитися прочитати для обмеження посилальної цілісності, відома як обмежувальний стіл .
Q # 15) Що таке фактичні параметри та формальні параметри?
Відповідь: Змінні або вираз, що називаються параметрами, що відображаються в операторі виклику процедури, відомий як Фактичні параметри .
Наприклад: підняти_саль (кількість_емп, заслуга + сума);
У наведеному вище прикладі emp_num і amount - це два фактичні параметри.
Змінні, які оголошені в заголовку процедури та на які посилаються в тілі процедури, називаються як Формальні параметри .
Наприклад:
ПРОЦЕДУРА rise_sal (emp_id INTEGER) Є
curr_sal REAL:
……… ..
ПОЧАТИ
ВИБЕРІТЬ САЛО В cur_sal ВІД emp WHERE empno = emp_id;
…….
END підняти_саль;
У наведеному вище прикладі emp_id діє як формальний параметр.
Q # 16) Яка різниця між операторами ROLLBACK та ROLLBACK TO?
Відповідь: Транзакція повністю закінчується після оператора ROLLBACK, тобто команда ROLLBACK повністю скасовує транзакцію та звільняє всі блокування.
З іншого боку, транзакція все ще активна і працює після команди ROLLBACK TO, оскільки вона скасовує лише частину транзакції до заданого SAVEPOINT.
Q # 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; /
Q # 18) Які 3 режими параметра?
Відповідь: 3 режими параметра - ВХОД, ВИХІД, ВИХІД.
Це можна пояснити наступним чином:
- Параметри IN: Параметри IN дозволяють передавати значення процедурі, що викликається, і можуть бути ініціалізовані значеннями за замовчуванням. Параметри IN діють як константа і не можуть отримати жодного значення.
- ВИХІД параметри: Параметри OUT повертають значення абоненту, і вони повинні бути вказані. Параметри OUT діють як неініціалізована змінна і не можуть бути використані у виразі.
- Параметри IN OUT: Параметри IN OUT передають початкові значення процедурі та повертають оновлені значення абоненту. Параметри IN OUT діють як ініціалізована змінна і їм слід присвоїти значення.
Q # 19) Чому% ISOPEN завжди хибний для неявного курсору?
Відповідь: Явний курсор, атрибут SQL% ISOPEN завжди хибний, оскільки неявний курсор відкривається для оператора DML і закривається відразу після виконання оператора DML.
Питання # 20) Коли виконується оператор DML, в яких атрибутах курсору результат оператора зберігається?
Відповідь: Результат оператора зберігається у 4 атрибутах курсора.
різниця в c і c ++
Це:
- SQL% ЗНАЙДЕНО
- SQL% НЕ ВИЗНАЧЕНО
- SQL% ROWCOUNT
- SQL% ISOPEN
Питання # 21) Які способи коментування в коді PL / SQL?
Відповідь: Коментарі - це текст, який додається до коду для покращення читабельності та розуміння читача. Ці коди ніколи не виконуються.
Існує два способи коментування в PL / SQL:
1) Однорядковий коментар: Цей коментар починається з подвійного -.
Приклад:
ЗАЯВИТИ
число НОМЕР (2); - це локальна змінна.
ПОЧАТИ
2) Багаторядковий коментар: Цей коментар починається з / * і закінчується * /.
Приклад:
ПОЧАТИ
num: = & p_num; / * Це змінна хосту, яка використовується в тілі програми * /
……….
КІНЕЦЬ
Q # 22) Що ви розумієте під обробкою винятків у PL / SQL?
Відповідь: Коли в PL / SQL виникає помилка, виникає виняток. Іншими словами, для обробки небажаних ситуацій, коли сценарії PL / SQL несподівано завершуються, в програму включається код обробки помилок. У PL / SQL весь код обробки винятків розміщується в розділі EXCEPTION.
Існує 3 типи ВИНЯТК:
- Визначені винятки: Поширені помилки із заздалегідь визначеними іменами.
- Невизначені винятки: Рідше помилки без попередньо визначених імен.
- Користувацькі винятки: Не викликайте помилок під час виконання, але порушуйте ділові правила.
Q # 23) Включити деякі визначені винятки?
Відповідь:
Деякі з попередньо визначених винятків:
- ДАНИХ НЕ ЗНАЙДЕНО: Однорядковий оператор SELECT, де не повертаються дані.
- TOO_MANY_ROWS: Однорядковий оператор SELECT, де повертається більше одного рядка.
- INVALID_CURSOR: Сталася незаконна робота курсору.
- ZERO_DIVIDE: Спроба ділити на нуль.
Q # 24) Що таке винятки курсора PL / SQL?
Відповідь:
Винятками, пов'язаними з курсорами PL / SQL, є:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
Q # 25) Поясніть різницю між курсором, заявленим у процедурах, та курсорами, заявленими у специфікації пакету?
Відповідь: Курсор, оголошений у процедурі, розглядається як локальний, тому інші процедури не можуть отримати до нього доступ.
Курсор, задекларований у специфікації пакету, розглядається як глобальний і, отже, до нього можна отримати доступ за допомогою інших процедур.
Q # 26) Що таке ЗАМЕСТО тригерів?
Відповідь: Тригери INSTEAD OF - це тригери, написані спеціально для модифікації подань, які не можуть бути безпосередньо змінені за допомогою операторів SQL DML.
Q # 27) Що таке вирази?
Відповідь: Вирази представлені послідовністю літералів та змінних, розділених операторами. У PL / SQL операції використовуються для маніпулювання, порівняння та обчислення деяких даних. Вираз - це композиція «Оператори» та «Операнди».
- Операнди: Це аргумент операторам. Операнди можуть бути змінними, викликами функції або константами.
- Оператори: Вони визначають дії, які слід виконати з операторами. Приклад: '+', '*' Тощо
Q # 28) Перелічіть різні типи виразів на прикладі.
Відповідь: Вирази можуть бути такими, як зазначено нижче:
- Числові або арифметичні вирази: Приклад: 20 * 10+ 15
- Логічні вирази: Приклад: 'Пляма', ЯК 'sp% t'
- Рядкові вирази: Приклад: LENGTH (‘NEW YORK’ || ‘NY’)
- Вирази дати: Приклад: SYSDATE> TO_DATE (’15 -NOV-16 ’,“ dd-mm-yy ”)
Q # 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;
Q # 30) Що ви розумієте під PL / SQL Records?
Відповідь: Записи PL / SQL можуть називатися набором значень або, скажімо, групою декількох частин інформації, кожна з яких має простіші типи і може бути пов'язана між собою як поля.
У PL / SQL підтримуються три типи записів:
- Записи на основі таблиці
- Записи на основі програміста
- Записи на основі курсору
Висновок
PL / SQL дуже великий, коли справа стосується навчання та застосування. Сподіваюся, ці запитання та відповіді на інтерв’ю допоможуть вам пройти.
Щоб дізнатися більше про PL SQL, прочитайте наш повний опис Серія підручників PL / SQL .
Щасливого навчання !!
Рекомендована література
- Запитання та відповіді на інтерв’ю
- Запитання та відповіді на інтерв’ю для тестування ETL
- 30 найкращих запитань та відповідей на інтерв’ю з огірками
- 30 найкращих запитань та відповідей на інтерв’ю SAS
- Найпопулярніші запитання щодо інтерв’ю Oracle: Основні питання Oracle, SQL, PL / SQL
- 30 найкращих запитань та відповідей на тестування безпеки
- 30+ найкращих запитань та відповідей на інтерв’ю у Scrum (СПИСОК 2021)
- 30 найкращих запитань та відповідей на інтерв’ю СУБД