Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Процедурный язык запросов PL/SQL – это процедурное расширение языка запросов SQL, разработанное фирмой Oracle. SQL является непроцедурным языком, т.к. пользователь просто отправляет на сервер базы данных команду SQL, а способ выполнения команды выбирает сам сервер. PL/SQL требует пошаговых инструкций для выполнения требуемых действий.
PL/SQL является языком третьего поколения, и имеет языковые элементы для объявления переменных, присвоения значений, проверки условий и ветвлений. Кроме того, он позволяет включать команды манипулирования данными (DML) и запросы в программные единицы, что позволяет контролировать выполнение транзакций с помощью PL/SQL.
PL/SQL блочно-ориентирован, это позволяет группировать логические единицы в блоки, каждый из которых может быть разбит на более мелкие подблоки. Сложная задача, таким образом, разбивается на отдельные легко управляемые модули, реализуемые в программной логике с помощью блоков.
PL/SQL позволяет описывать переменные простых и составных типов, константы, курсоры, исключения и использовать их в командах SQL и PL/SQL. Типы переменных могут быть описаны динамически, на основе типов данных столбцов таблицы базы данных. Типы данных PL/SQL и SQL совместимы и могут быть явно или неявно преобразованы друг в друга.
PL/SQL имеет управляющие структуры, позволяющие организовывать условное выполнение и цикличность обработки команд. Кроме того, PL/SQL имеет средства для обработки строк, возвращенных многострочным запросом SQL из базы данных.
PL/SQL имеет обработчик исключительных ситуаций (Exception Handler) для обработки ошибок и исключений, которые могут возникнуть во время выполнения кода PL/SQL. Таким образом могут быть обработаны, как ошибки сервера базы данных, так и исключения, определенные пользователем.
PL/SQL легко переносим, т.к. стандартизован для всех серверов фирмы Oracle, независимо от платформы. Программа, написанная на языке PL/SQL, может быть откомпилирована и выполнена на любом сервере Oracle без модификаций.
PL/SQL группирует команды SQL в единый блок и передает их серверу Oracle за одно обращение, снижая сетевой трафик.
Программы, написанные на языке PL/SQL, обрабатываются ядром PL/SQL, которое может быть частью сервера Oracle или частью инструментального средства, в зависимости от того, как вызывается PL/SQL.
Если код PL/SQL запускается из SQL*Plus, oн обрабатывается ядром PL/SQL на сервере Oracle. Код сканируется, разбирается и компилируется. SQL, содержащийся в блоке, разделяется на отдельные команды, которые передаются Исполнителю команд SQL (SQL Statement Executor) на сервере Oracle. Набор данных, полученный в результате выполнения команды SQL, поступает в ядро PL/SQL для дальнейшей обработки. Процедурные выражения, не являющиеся командами SQL, передаются на выполнение Исполнителю процедурных команд (Procedure Statement Executor), который является частью ядра PL/SQL.
Одним из преимуществ использования блоков PL/SQL по сравнению с индивидуальным выполнением каждого оператора SQL является уменьшение загрузки сети, т.к. для передачи блока из приложения на сервер базы данных достаточно одной операции (Рисунок 1).
Рисунок 1 Выполнение блока PL/SQL и отдельных предложений SQL сервером Oracle
Процедурный язык PL/SQL блочно-ориентирован. Каждая программная единица PL/SQL состоит из одного или более блоков, которые могут быть полностью независимыми или вложенными друг в друга. Основной блок кода PL/SQL может содержать до трех частей
DECLARE
– декларативная необязательная секция
содержит объявление переменных, констант, курсоров, пользовательских исключений
BEGIN – обязательная секция
выполняемого кода
содержит команды SQL для манипулирования данными в базе
и команды PL/SQL для манипулирования
данными в блоке
EXCEPTION – необязательная секция
обработки исключений (ошибок или предупреждений)
определяет действия, связанные с обработкой ошибок сервера или пользовательских
исключений, возникших в секции выполняемого кода
END;
Основной блок кода PL/SQL может использоваться в различных программных конструкциях:
Программная конструкция |
Описание |
Анонимный блок |
Неименованный блок PL/SQL, встроенный в приложение или выполняемый интерактивно (например, из SQL*Plus). Описывается в той точке приложения, где будет выполняться и передается на выполнение ядру PL/SQL во время выполнения приложения |
Хранимая процедура или функция |
Именованный блок PL/SQL, который позволяет задавать параметры и может выполняться многократно на стороне сервера |
Процедура или функция приложения |
Именованный блок PL/SQL, который позволяет задавать параметры и может выполняться многократно на стороне клиента |
Пакет |
Именованный модуль PL/SQL, который группирует связанные процедуры, функции, идентификаторы |
Триггер базы данных |
Блок PL/SQL, связанный с таблицей базы данных и выполняемый автоматически |
Триггер приложения |
Блок PL/SQL, связанный с событием в приложении и выполняемый автоматически |
Именованные блоки PL/SQL
называются программными единицами. Программные единицы делятся на
три категории:
§ Процедуры, позволяющие задавать параметры и выполняющие заданные действия
§ Функции, позволяющие задавать параметры, вычисляющие и возвращающие значения
§ Пакеты, объединяющие логически связанные процедуры и функции
Программные единицы подразделяются на хранимые и прикладные подпрограммы (подпрограммы приложения):
Хранимая подпрограмма |
Прикладная подпрограмма |
|
Хранится |
В базе данных |
В приложении |
Выполняется |
Из любого приложения или инструментального средства базы данных |
Только из данного приложения |
Подпрограмма может содержать до четырех секций:
§ Обязательная секция заголовка – определяет имя, тип и аргументы подпрограммы
§ Декларативная необязательная секция – содержит объявление локальных переменных, констант, курсоров, пользовательских исключений
§ Обязательная секция выполняемого кода – содержит команды SQL для манипулирования данными в базе и команды PL/SQL для манипулирования данными в блоке
§ Необязательная секция обработки исключений – определяет действия, связанные с обработкой ошибок сервера или пользовательских исключений, возникших в секции выполняемого кода
· Идентификаторы могут содержать до 30 символов и должны начинаться с буквы
· Зарезервированные слова могут использоваться в качестве идентификаторов только в том случае, если они заключены в кавычки (“SELECT”)
· Не выбирайте для идентификатора имя, совпадающее с именем столбца таблицы базы данных, используемой в блоке. При выполнении команды SQL Oracle всегда предполагает, что используется ссылка на столбец
· Предложение может занимать несколько строк, но ключевые слова переносить нельзя
· Лексические единицы (идентификаторы или литералы) могут быть разделены пробелами
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.