Завантажте PDF
1) Що таке PL SQL?
PL SQL - це процедурна мова, яка має інтерактивний SQL, а також конструкції мови процедурного програмування, такі як умовне розгалуження та ітерація.
2) Розмежуйте між% ROWTYPE та TYPE RECORD.
% ROWTYPE використовується, коли запит повертає цілий рядок таблиці або подання.
З іншого боку, TYPE RECORD використовується, коли запит повертає стовпець різних таблиць або подань.
Напр. TYPE r_emp - це RECORD (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
ДАНИХ НЕ ЗНАЙДЕНО
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
INVALID_NUMBER
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
тощо
8) Поясніть помилку Raise_application_er.
Це процедура пакета 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 на наявність помилок компіляції. Коли всі помилки виправлені, змінним, що містять дані, присвоюється адреса зберігання. Це називається Binding. 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.
Курсор_Вже_відкритий
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. Таким чином, весь код 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, UPPER, 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 - це логічна адреса рядка, це не фізичний стовпець. Він складається з номера блоку даних, номера файлу та номера рядка в блоці даних. Таким чином, час введення / виведення мінімізує отримання рядка і призводить до швидшого запиту.
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 розшифровується як System Global Area, тоді як PGA позначає Program або Process Global Area. PGA виділяється лише 10% обсягу оперативної пам'яті, але SGA надає 40% розміру оперативної пам'яті.
43) Яке розташування функцій Pre_defined_.
Вони зберігаються у стандартному пакеті, який називається "Функції, процедури та пакети"
44) Поясніть поліморфізм у PL SQL.
Поліморфізм є особливістю ООП. Це можливість створювати змінну, об’єкт або функцію з декількома формами. PL / SQL підтримує поліморфізм у вигляді перевантаження програмного блоку всередині функції-члена або пакета ... Потрібно уникати однозначної логіки під час перевантаження.
45) Яке використання MERGE?
MERGE використовується для об'єднання декількох операторів DML в один.
Синтаксис: об’єднання в ім’я таблиці
використовуючи (запит)
увімкнено (умова приєднання)
коли тоді не відповідають
команда [вставити / оновити / видалити]
при відповідності тоді
команда [вставити / оновити / видалити]
46) Чи можна виконувати одночасно 2 запити в системі розподілених баз даних?
Так, їх можна виконувати одночасно. Один запит завжди незалежний від другого запиту в розподіленій системі баз даних на основі 2-фазного коміту.
47) Поясніть помилку Raise_application_er.
Це процедура пакета DBMS_STANDARD, яка дозволяє видавати повідомлення про помилки, визначені користувачем, із тригера бази даних або збереженої підпрограми.
48) Який параметр out використовується, навіть якщо оператор return також може бути використаний у pl / sql?
Параметри виходу дозволяють більше одного значення у програмі, що викликає. Параметр виходу не рекомендується у функціях. Процедури можна використовувати замість функцій, якщо потрібно кілька значень. Таким чином, ці процедури використовуються для виконання параметрів Out.
49) Як би ви перетворили дату в юліанський формат дати?
Ми можемо використовувати рядок формату J:
SQL> виберіть to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') як julian з dual;
ЮЛІАН
50) Поясніть SPOOL
Команда Spool може надрукувати вихідні дані операторів sql у файлі.
spool / tmp / sql_outtxt
виберіть smp_name, smp_id із smp де dept = 'account';
відмотати котушку;
51) Згадайте, з чого складається пакет PL / SQL?
Пакет PL / SQL складається з
- PL / SQL таблиця та запис операторів TYPE
- Процедури та функції
- Курсори
- Змінні (таблиці, скаляри, записи тощо) та константи
- Імена винятків та прагми для зв’язку номера помилки з винятком
- Курсори
52) Згадайте, які переваги пакетів PL / SQL?
Це забезпечує кілька переваг, таких як
- Примусове приховування інформації: воно надає свободу вибору: зберігати дані приватними чи загальнодоступними
- Дизайн зверху вниз: Ви можете розробити інтерфейс коду, прихованого в пакеті, до того, як фактично реалізувати самі модулі
- Персистенція об’єктів: Об’єкти, заявлені у специфікації пакету, поводяться як загальні дані для всіх об’єктів PL / SQL у програмі. Ви можете змінити пакет в одному модулі, а потім посилатися на ці зміни в інший модуль
- Об'єктно-орієнтоване проектування: Пакет надає розробникам міцну владу над тим, як можна використовувати модулі та структури даних всередині пакету
- Гарантування цілісності транзакцій: Це забезпечує рівень цілісності транзакцій
- Покращення продуктивності: СУБД автоматично відстежує дійсність усіх програмних об'єктів, що зберігаються в базі даних, і покращує продуктивність пакетів.
53) Згадайте, які існують різні методи відстеження коду PL / SQL?
Код трасування є найважливішим методом для вимірювання продуктивності коду під час виконання. Різні методи відстеження включають
- СУБД_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION та DBMS_MONITOR
- утиліти trcsess та tkproof
54) Згадайте, чим займається ієрархічний профайлер?
Ієрархічний профайлер може профілювати виклики, зроблені в PL / SQL, крім заповнення прогалини між лазівками та очікуваннями відстеження продуктивності. Ефективність ієрархічного профайлера включає
- Чітка звітність щодо споживання часу SQL та PL / SQL
- Звіти підраховують різні виклики підпрограм, здійснені в PL / SQL, і час, проведений під час кожного виклику підпрограми
- Кілька звітів про інтерактивну аналітику у форматі HTML за допомогою утиліти командного рядка
- Більш ефективний, ніж звичайні засоби профілювання та інші засоби відстеження
55) Згадайте, що дозволяє вам повідомлення PLV?
Повідомлення 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 ви можете скористатися програмою " file2pstab" .
59) Поясніть, як обробка винятків здійснюється заздалегідь PL / SQL?
Для обробки винятків PL / SQl забезпечує ефективний плагін PLVexc. PLVexc підтримує чотири різні дії з обробки винятків.
- Продовжувати обробку
- Запишіть, а потім продовжуйте
- Припинення обробки
- Запис, а потім зупинка обробки
Для тих винятків, які повторюються, ви можете використовувати оператор RAISE.
60) Згадайте, з якою проблемою можна зіткнутися під час запису інформації журналу до таблиці бази даних у PL / SQL?
Під час запису інформації журналу до таблиці бази даних проблема, з якою ви стикаєтесь, полягає в тому, що інформація доступна лише після того, як нові рядки будуть призначені для бази даних. Це може бути проблемою, оскільки такий PLVlog зазвичай розгортається для відстеження помилок, і в багатьох таких випадках поточна транзакція зазнає невдачі або потребує відкату.
61) Згадайте, яка функція використовується для передачі журналу таблиць PL / SQL до таблиці бази даних?
Для передачі журналу таблиць PL / SQL використовується функція таблиці журналу бази даних "ПРОЦЕДУРА ps2db" .
62) Коли вам потрібно використовувати точку збереження за замовчуванням для точки збереження PLVlog?
Точка збереження за замовчуванням для точки збереження 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