65 вопросов и ответов на собеседовании по PL/SQL (2025 г.)

Вот вопросы и ответы на собеседовании по PL/SQL для новичков и опытных кандидатов, желающих получить работу своей мечты.

 

Вопросы и ответы на собеседовании по PL/SQL для первокурсников

1) Что такое PL SQL?

Oracle PL/SQL — это расширение языка SQL, которое сочетает в себе возможности манипулирования данными SQL с вычислительной мощностью процедурного языка для создания сверхмощных SQL-запросов. PL/SQL обеспечивает бесперебойную обработку операторов SQL за счет повышения безопасности, переносимости и надежности базы данных.
PL/SQL означает «расширения процедурного языка для языка структурированных запросов».

👉 Бесплатная загрузка в формате PDF: Вопросы и ответы для интервью по PL/SQL


2) Различайте % ROWTYPE и TYPE RECORD.

%ТИП СТРОКИ используется, когда запрос возвращает всю строку таблицы или представления.
ТИП ЗАПИСИ с другой стороны, используется, когда запрос возвращает столбец из разных таблиц или представлений.

Например. ТИП r_emp ЗАПИСЬ (sno smp.smpno%type,sname smp sname %type)

e_rec smp%ТИП СТРОКИ

Курсор c1 выбирает smpno,dept из smp;

e_rec c1 %ТИП СТРОКИ


3) Объясните использование курсора.

Курсор — это именованная частная область в SQL, из которой можно получить доступ к информации. Им необходимо обрабатывать каждую строку отдельно для запросов, которые возвращают несколько строк.


4) Покажите код курсора для цикла.

Курсор неявно объявляет %ROWTYPE как индекс цикла. Затем он открывает курсор, получает строки значений из активного набора в полях записи и закрывается, когда все записи обработаны.

Например.

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) Объясните использование триггера базы данных.

Программный модуль PL/SQL, связанный с определенной таблицей базы данных, называется триггером базы данных. Он используется для:

1) Аудит изменений данных.

2) Прозрачно регистрируйте события.

3) Обеспечивать соблюдение сложных бизнес-правил.

4) Поддерживать таблицы реплик

5) Получение значений столбцов

6) Внедрение комплексных разрешений безопасности


6) Каковы два типа исключений.

Часть блока PL/SQL, обрабатывающая ошибки, называется Exception. Они имеют два типа: user_defined и предопределенные.


7) Показать некоторые предопределенные исключения.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

ДАННЫЕ НЕ НАЙДЕНЫ

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

НЕПРАВИЛЬНЫЙ НОМЕР

INVALID_CURSOR

ПРОГРАММА_ОШИБКА

ВРЕМЯ _ON_RESOURCE

STORAGE_ERROR

ВХОД_ЗАПРЕЩЕН

VALUE_ERROR

и так далее


8) Объясните Raise_application_error.

Это процедура пакета DBMS_STANDARD, которая позволяет выдавать определяемые пользователем сообщения об ошибках из триггера базы данных или сохраненной подпрограммы.


9) Покажите, как вызываются функции и процедуры в блоке PL SQL.

Функция вызывается как часть выражения.

total:=calculate_sal('b644')

Процедура вызывается как оператор в PL/SQL.

calculate_bonus('b644');


10) Объясните две виртуальные таблицы, доступные во время выполнения триггера базы данных.

Столбцы таблицы называются OLD.column_name и NEW.column_name.

Для триггеров, связанных с INSERT, доступны только значения NEW.column_name.

Для триггеров, связанных с DELETE, доступны только значения OLD.column_name.

Для триггеров, связанных с ОБНОВЛЕНИЕМ, доступны оба столбца таблицы.


11) Какие правила следует применять к значениям NULL при сравнении?

1) NULL никогда не бывает ИСТИНОЙ или ЛОЖЬЮ.

2) NULL не может быть равным или неравным другим значениям.

3) Если значение в выражении равно NULL, то само выражение оценивается как NULL, за исключением оператора конкатенации (||).


12) Как компилируется процесс PL SQL?

Процесс компиляции включает в себя проверку синтаксиса, процессы связывания и генерации p-кода.

Проверка синтаксиса проверяет коды PL SQL на наличие ошибок компиляции. Когда все ошибки исправлены, переменным, содержащим данные, присваивается адрес хранилища. Это называется Привязка. P-код — это список инструкций для механизма PL SQL. P-код хранится в базе данных для именованных блоков и используется при следующем выполнении.


13) Различайте синтаксические ошибки и ошибки времени выполнения.

Синтаксическая ошибка может быть легко обнаружена компилятором PL/SQL. Например, неправильное написание.

Ошибка времени выполнения обрабатывается с помощью раздела обработки исключений в файле Блок PL / SQL. Например, оператор SELECT INTO, который не возвращает ни одной строки.


14) Объясните фиксацию, откат и точку сохранения.

Для оператора COMMIT справедливо следующее:

  • Другие пользователи могут видеть изменения данных, внесенные транзакцией.
  • Блокировки, полученные в результате транзакции, снимаются.
  • Работа, выполняемая транзакцией, становится постоянной.

Инструкция ROLLBACK выдается, когда транзакция завершается, и верно следующее.

  • Работа, выполненная при переходе, отменяется, как если бы она никогда не выполнялась.
  • Все блокировки, полученные в результате транзакции, снимаются.

Он отменяет всю работу, проделанную пользователем в транзакции. С помощью SAVEPOINT можно отменить только часть транзакции.


15) Определите неявные и явные курсоры.

По умолчанию курсор является неявным. Пользователь не может контролировать или обрабатывать информацию в этом курсоре.

Если запрос возвращает несколько строк данных, программа определяет явный курсор. Это позволяет приложению обрабатывать каждую строку последовательно по мере того, как курсор возвращает ее.


16) Объясните ошибку мутирующей таблицы.

Это происходит, когда триггер пытается обновить строку, которую он использует в данный момент. Это устраняется с помощью представлений или временных таблиц, поэтому база данных выбирает одно и обновляет другое.


17) Когда требуется заявление о декларировании?

Оператор DECLARE используется анонимными блоками PL SQL, например, с автономными несохраненными процедурами. Если он используется, он должен быть первым в отдельном файле.


18) Сколько триггеров можно применить к таблице?

К одной таблице можно применить максимум 12 триггеров.


19) В чем важность SQLCODE и SQLERRM?

SQLCODE возвращает значение номера ошибки для последней обнаруженной ошибки, тогда как SQLERRM возвращает сообщение для последней ошибки.


20) Если курсор открыт, как его найти в блоке PL SQL?

можно использовать переменную состояния курсора %ISOPEN.


Вопросы для собеседования по PL/SQL для опытных

21) Покажите два исключения курсора PL/SQL.

Cursor_Already_Open

Неверный_курсор


22) Какие операторы работают с NULL?

NVL преобразует NULL в другое указанное значение.

var:=NVL(var2,'Hi');

IS NULL и IS NOT NULL можно использовать для проверки того, является ли значение переменной NULL или нет.


23) Имеет ли SQL*Plus движок PL/SQL?

Нет, в 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) Объясните три основные части триггера.

  • Триггерное заявление или событие.
  • Ограничение
  • Действие

26) Что такое функции персонажа?

INITCAP, UPPER, SUBSTR, LOWER и LENGTH — это символьные функции. Групповые функции дают результаты на основе групп строк, а не отдельных строк. Это МАКС, МИН, AVG, СЧИТАТЬ и СУММ.


27) Объясните ТТИТЛ и БТИТЛ.

Команды TTITLE и BTITLE, управляющие верхними и нижними колонтитулами отчета.


28) Покажите атрибуты курсора PL/SQL.

%ISOPEN: Проверяет, открыт курсор или нет

%ROWCOUNT: Количество строк, которые обновляются, удаляются или извлекаются.

%FOUND: Проверяет, выбрал ли курсор какую-либо строку. Это правда, если строки извлекаются

%NOT FOUND: Проверяет, выбрал ли курсор какую-либо строку. Это правда, если строки не извлекаются.


29) Что такое пересечение?

Пересечение — это произведение двух таблиц, в котором перечислены только совпадающие строки.


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 не допускает использования заявлений о принятии решений вместо них.

выберите decode(totalsal=12000,'high',10000,'medium') как decode_tesr из smp, где smpno в (10,12,14,16);

Этот оператор возвращает ошибку.

CASE напрямую используется в PL SQL, а DECODE используется в PL SQL только через SQL.


41) Объясните автономную транзакцию.

Автономная транзакция — это независимая транзакция от основной или родительской транзакции. Он не является вложенным, если он запускается другой транзакцией.

Существует несколько ситуаций, в которых можно использовать автономные транзакции, такие как регистрация событий и аудит.


42) Различайте SGA и PGA.

SGA означает глобальную область системы, тогда как PGA означает глобальную область программы или процесса. PGA выделяется только 10% объема ОЗУ, а SGA - 40% объема ОЗУ.


43) Каково расположение Pre_defined_functions.

Они хранятся в стандартном пакете под названием «Функции, процедуры и пакеты».


44) Объясните полиморфизм в PL SQL.

Полиморфизм — особенность ООП. Это возможность создавать переменную, объект или функцию в нескольких формах. PL/SQL поддерживает полиморфизм в форме перегрузки программного модуля внутри функции-члена или пакета. Во время перегрузки следует избегать однозначной логики.


45) Каково использование MERGE?

MERGE используется для объединения нескольких операторов DML в один.

Синтаксис: объединиться с именем таблицы.

использование (запрос)

включено (условие соединения)

когда не совпадает, тогда

команда [вставить/обновить/удалить]

при совпадении тогда

команда [вставить/обновить/удалить]


Вопросы для собеседования по PL/SQL для людей с опытом работы более 5 лет

46) Могут ли одновременно выполняться 2 запроса в системе распределенной базы данных?

Да, они могут выполняться одновременно. Один запрос всегда независим от второго запроса в системе распределенных баз данных на основе двухфазной фиксации.


47) Объясните Raise_application_error.

Это процедура пакета DBMS_STANDARD, которая позволяет выдавать определяемые пользователем сообщения об ошибках из триггера базы данных или сохраненной подпрограммы.


48) Для чего используется параметр out, хотя оператор return также может использоваться в pl/sql?

Параметры Out допускают использование более одного значения в вызывающей программе. Параметр Out не рекомендуется использовать в функциях. Процедуры можно использовать вместо функций, если требуется несколько значений. Таким образом, эти процедуры используются для выполнения параметров Out.


49) Как бы вы конвертировали дату в юлианский формат?

Мы можем использовать строку формата J:

SQL > выберите to_char(to_date('29-Mar-2013','dd-mon-yyyy'),'J') как юлианский из двойного;

Джулиан


50) Объясните КАТУШКУ

Команда Spool может печатать выходные данные операторов sql в файл.

катушка/tmp/sql_outtxt

выберите smp_name, smp_id из smp, где dept='accounts';

катушка выключена;


51) Укажите, из чего состоит пакет PL/SQL?

Пакет PL/SQL состоит из

  • Таблица PL/SQL и операторы TYPE записи
  • Процедуры и функции
  • курсоры
  • Переменные (таблицы, скаляры, записи и т. д.) и константы
  • Имена исключений и прагмы для связи номера ошибки с исключением.
  • курсоры

52) Назовите преимущества пакетов PL/SQL?

Это дает несколько преимуществ, таких как

  • Принудительное сокрытие информации: Он предлагает свободу выбора, сохранять ли данные конфиденциальными или общедоступными.
  • Дизайн сверху вниз: Вы можете разработать интерфейс для кода, скрытого в пакете, до того, как вы фактически реализуете сами модули.
  • Сохранение объекта: Объекты, объявленные в спецификации пакета, ведут себя как глобальные данные для всех объектов PL/SQL в приложении. Вы можете изменить пакет в одном модуле, а затем перенести эти изменения в другой модуль.
  • Объектно-ориентированный дизайн: Пакет дает разработчикам полный контроль над тем, как можно использовать модули и структуры данных внутри пакета.
  • Гарантия целостности транзакции: Обеспечивает уровень целостности транзакций.
  • Улучшение производительности: Команда RDBMS автоматически отслеживает достоверность всех программных объектов, хранящихся в базе данных, и повышает производительность пакетов.

53) Укажите, какие существуют методы отслеживания кода PL/SQL?

Трассировка кода — это важнейший метод измерения производительности кода во время выполнения. Различные методы отслеживания включают в себя

  • DBMS_APPLICATION_INFO
  • СУБД_TRACE
  • DBMS_SESSION и DBMS_MONITOR
  • утилиты trcess и 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 Vision
  • Предопределенные типы данных

57) Назовите, в чем польза PLVprs и PLVprsps?

  • ПЛВпрс: Это расширение для анализа строк для PL/SQL и самый низкий уровень функциональности анализа строк.
  • ПЛВпрспс: Это пакет самого высокого уровня для анализа исходного кода PL/SQL на отдельные атомы. Для выполнения работы он полагается на другие пакеты синтаксического анализа.

58) Объясните, как можно заранее скопировать файл в содержимое файла и файл в таблицу PL/SQL PL/SQL?

Одним вызовом программы – «процедура копирования», вы можете скопировать все содержимое одного файла в другой файл. А чтобы скопировать содержимое файла непосредственно в таблицу PL/SQL, вы можете использовать программу «файл2pstab».


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?

«Процедура модуля» позволяет преобразовать все строки кода в определенную программную единицу одним вызовом процедуры. Есть три аргумента для модулей

  • модуль_вход
  • кор_ин
  • Последний_модуль_вход

67) Упомяните, что делают PLVcmt и PLVrb в PL/SQL?

PL/Vision предлагает два пакета, которые помогут вам управлять обработкой транзакций в приложении PL/SQL. Это PLVcmt и PLVrb.

  • PLVcmt: Пакет PLVcmt охватывает логику и сложность обработки коммитов
  • ПЛВрб: Он предоставляет программный интерфейс для отката активности в PL/SQL.

Эти вопросы для собеседования также помогут вам в устной речи.