Sql pl что за программа

PL/SQL — это процедурный блочно- структурированный язык . Он представляет собой расширение языка SQL и предназначен для работы с СУБД Oracle.

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

  • реализация подпрограмм как отдельных блоков , в том числе использование вложенных блоков ;
  • создание пакетов, процедур и функций, хранимых в базе данных;
  • предоставление интерфейса для вызова внешних процедур;
  • поддержка как типов данных SQL, так и типов, вводимых в PL/SQL ;
  • применение явного и неявного курсора, а также оператора цикла FOR для курсора;
  • введение у переменных PL/SQL и курсоров атрибутов, которые позволяют ссылаться на тип данных или структуру элемента;
  • введение типов коллекций и объектных типов ;
  • поддержка набора операторов управления и операторов цикла ;
  • реализация механизма обработки исключений.

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

Create and Call Procedure in PL/SQL | Procedure to Update Salary of an Employee | TechnonTechTV

Блок позволяет объединять объявления и операторы , связанные общей логикой; может быть анонимным и именованным.

Блок состоит из трех основных частей:

  • секция объявлений (необязательная часть);
  • тело блока ;
  • обработчики исключений (необязательная часть).

[ > ] [DECLARE ] BEGIN [EXCEPTION ] END [label_name];
— Метка блока — Секция объявлений — Тело блока — Обработчики исключений

PL/SQL не чувствителен к регистру, кроме строковых переменных и констант.

Каждая конструкция PL/SQL должна заканчиваться символом ;.

Одна конструкция может быть расположена на нескольких строках.

Источник: intuit.ru

Основы PL SQL: структура, функции, триггеры, переменные, записи

SUBD_Deep_3.4-5020-34d5f8.png

PL/SQL (Programming Language for SQL) — язык программирования от компании Oracle, предоставляющий средства для сложной обработки данных. В этой статье мы рассмотрим основы PL/SQL.

Начнём с программных единиц.

Программные единицы PL/SQL

К программным единицам в PL/SQL относят: 1. Процедуру — подпрограмму, выполняющую специфическое действие (CREATE PROCEDURE); 2. Функцию — подпрограмму, вычисляющую значение (CREATE FUNCTION). 3. PL/SQL-пакеты — объект БД, группирующий логически связанные типы, подпрограммы и программные объекты PL/SQL. Как правило, пакеты состоят из 2 частей — тела и спецификации.

Спецификация представляет собой интерфейс с вашими приложениями (объявляет типы, константы, переменные, исключения, подпрограммы, курсоры — всё, что доступно для использования в пакете). Вторая часть — это тело пакета, полностью определяющая подпрограммы и курсоры, реализуя тем самым спецификацию пакета. 4. Динамический SQL: a. Native Dynamic SQL (NDS); b. DBMS_SQL.

Читайте также:
Что такое easy content share что это за программа

Difference between SQL and PL/SQL | SQL vs PL SQL | Intellipaat

5. Опции компилятора. 6. Триггеры — хранимые процедуры особого типа, которые юзер не вызывает непосредственно, т. к. их исполнение обусловлено действиями по модификации данных. Триггеры бывают разные: BEFORE INSERT, BEFORE UPDATE, AFTER INSERT и пр. 7. Управление зависимостями.

8. Хинты либо подсказки (Oracle Hints) — средства, которые позволяют оказывать явное влияние на план запроса. Подсказки определяют общие подходы и цели, оптимизирующие план исполнения запроса, в том числе методы и правила доступа к данным (например, указание метода и порядка соединения таблиц, индекса для доступа к таблице).

Блочная структура PL/SQL

Давайте посмотрим на структуру PL/SQL-блока для процедуры:

block_plsql_2-20219-618e0f.png

Следующее изображение — это пример процедуры, содержащей все 4 раздела:

procedure_structure_plsql_1-20219-785da3.png

Хранимая процедура

Под хранимой процедурой понимают некоторый перечень инструкций, которые написаны на PL/SQL. Вызов такой процедуры обеспечивает выполнение содержащихся в этой процедуре инструкций. Сама она хранится в БД, поэтому и считается хранимой. Состоит из тела и спецификации.

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

Рассмотрим пример спецификации:

increase_salary_find_tax ( increase_percent IN NUMBER := 7, sal IN OUT NUMBER, tax OUT NUMBER )

В примере выше перед нами процедура с 3-мя формальными параметрами. IN после имени параметра значит, что в процессе вызова процедура может из данного параметра считать входное значение. OUT значит, что процедура может применять этот параметр в целях возврата значения в ту программу, из которой она вызывалась. Комбинация IN OUT значит, что параметр может использоваться в качестве передачи значения процедуре, а также в целях возврата значения.

Что касается тела процедуры, то это блок кода PL/SQL.

Хранимые функции

Функция PL/SQL напоминает процедуру PL/SQL: у неё тоже есть тело и спецификация. Основное различие — функция нужна для возврата значения, которое можно применять в более крупном операторе SQL.

Триггеры

Триггером называют процедуру PL/SQL, выполняемую автоматически, когда происходит некоторое событие, которое называется триггерным событием.

К примеру, мы можем писать триггеры, которые срабатывают в процессе выполнения над таблицей операций UPDATE, INSERT либо DELETE; во время выдачи команд DDL; во время входа пользователя в систему либо его выхода; во время запуска либо остановки БД; во время возникновения ошибок.

Существуют 3 различия между процедурами PL/SQL и триггерами: 1. Триггеры невозможно вызвать из кода программы. Они вызываются автоматически как ответ на некоторое событие. 2. У триггеров нет списка параметров. 3. Спецификации триггера и процедуры немного отличаются.

Читайте также:
Программа passolo что это

Переменные в PL/SQL

Переменными называют именованные контейнеры. Они способны содержать информацию разных видов. С учётом помещаемой информации данных они имеют разные типы данных, а чтобы отличать эти данные друг от друга, присваиваются имена. К примеру, числа в PL/SQL хранятся в переменных типа NUMBER, текст — в переменных CHAR либо VARCHAR2. Что касается синтаксиса объявления переменной, то в PL/SQL он имеет любую из нижеперечисленных форм записи:

имя_переменной тип_данных [[NOTNULL] := выражение_по_умолчанию]; имя_переменной тип_данных [[NOT NULL] DEFAULT выражение_по_умолчанию];

Здесь имя_переменной — любой правильный PL/SQL идентификатор. Такой идентификатор должен: 1. Иметь в длину не больше 30 символов, причём не иметь в записи пробелов и знаков табуляции. 2. Начинаться с буквы.

3. Состоять лишь из букв, цифр 0-9, символа подчеркивания, знака доллара и знака фунта. 4. Не совпадать с зарезервированными словами SQL и PL/SQL, имеющими спецзначение. Пример неправильной записи для переменной — слово BEGIN, обозначающее начало выполняемой секции основного PL/SQL-блока.

Следующее, это тип_данных — любой допустимый тип данных в SQL либо PL/SQL. Здесь обратите внимание, что модификатору NOT NULL требуется, чтобы переменная имела значение. И если модификатор указан, то переменной должно присвоиться значение по умолчанию.

Объявляем константы PL/SQL

Запись объявления константы выглядит следующим образом:

имя_переменной тип_данных CONSTANT := выражение;

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

Записи в PL/SQL

Говоря о записи в PL/SQL, мы говорим о наборе данных базовых типов. К записи мы можем обращаться, как к единому целому. При этом для доступа к отдельным полям записи используют нотацию имя_записи_имя_поля . Записи бывают одного из 3-х нижеперечисленных типов: 1. Table-based (основанные на таблице). Такие записи имеют поля, которые совпадают по типу и имени со столбцами таблицы.

Когда курсор выбирает всю строку — к примеру, оператором SELECT * FROM примерная_таблица, то возвращаемые записи можно копировать в переменную, имеющую тип записи, которая основана на таблице примерная_таблица. 2. Cursor-based (основанные на курсоре). Что касается полей этих записей, то они совпадают по имени, порядку и типу с заключительным списком столбцов в курсорном операторе SELECT. 3. Programmer-defined (определённые программистом). Тут речь идёт про записи, тип которых определяет программист, то есть вы сами.

Читайте также:
Программа пвд что это

Record PL/SQL

Давайте посмотрим, как применять спецификатор записи Record в PL/SQL с синтаксисом.

Record (запись) — это группа связанных элементов данных, которые хранятся в полях, причём каждая имеет своё имя и тип данных. При этом мы можем применять Record как переменную, способную содержать строку таблицы либо некоторые столбцы из строки таблицы.

Определяем и объявляем Record в PL/SQL

Объявить запись поможет атрибут %ROWTYPE, представляющий строку в таблице БД без непосредственного перечисления всех столбцов. При этом ваш код будет продолжать функционировать даже после добавления в таблицу столбцов. Но если вы желаете представить подмножество столбцов в таблице либо столбцы из различных таблиц, можно определить VIEW либо объявить CURSOR в целях выбора правильных столбцов и любых нужных объединений, а потом задействовать атрибут %ROWTYPE к CURSOR либо VIEW.

Посмотрим на синтаксис объявления переменной в PL/SQL и определения типа Record:

TYPE type_rec_name IS Record (field_1 datatype, field_2 datatype, … field_n datatype); var_rec type_rec_name;

Основы языка PL/SQL

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

Все программы на языке PL/SQL состоят из блоков.

Блок PL/SQL состоит из трех секций.

PL/SQL BLOCK

  • Декларативная (необязательная) – Начинается с ключевого слова DECLARE и заканчивается там, где начинается исполняемая секция. Содержит все переменные, константы, курсоры и исключения.
  • Исполняемая (обязательная) – Начинается с ключевого слова BEGIN и заканчивается ключевым словом END. После END ставится точка с запятой. Содержит команды SQL для выборки данных из БД и команды PL/SQL для манипулирования данными в блоке.
  • Обработка исключений (необязательная) – Начинается с ключевого слова EXCEPTION. Определяет действия, которые должны выполняться при возникновении ошибок.

Типы блоков

Программа на PL/SQL содержит один из несколько блоков. Эти блоки могут быть полностью автономными или вложенными.

Существует три типа блоков:

  • Анонимные блоки (anonymous blocks);
  • Процедуры
  • Функции

PL/SQL BLOCK

Анонимные блоки – (anonymous blocks) не имеют имен. Будут полезны, где необходимость в повторном вызове кода оссутствует.

Подпрограммы (subprograms) – именованные блоки PL/SQL, хранимые в базе данных. Поскольку у подпрограмм есть имена, их можно вызывать из любой требуемой точки приложения. Объявлять их можно как процедуры или функции. Обычно процерура используется для выполнения действия функция для вычисления и возврата значений.

Tags: Основы языка PL/SQL

PL/SQL

tags: Администрирование Oracle DataBase || SQL https://plsql.ru/plsql/plsql_basics/» target=»_blank»]plsql.ru[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru