plsql
Процедура PLSQL
Поиск…
Вступление
Процедура PLSQL - это группа операторов SQL, хранящихся на сервере для повторного использования. Это увеличивает производительность, потому что SQL-запросы не нужно перекомпилировать каждый раз, когда они выполняются.
Хранимые процедуры полезны, когда один и тот же код требуется для нескольких приложений. Хранимые процедуры исключают избыточность и вводят простоту в код. Когда требуется передача данных между клиентом и сервером, процедуры могут снизить стоимость связи в определенных ситуациях.
Синтаксис
CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_name [IN | OUT | IN OUT] type [, ...])]
{IS | AS}
< declarations >
BEGIN
< procedure_body >
EXCEPTION -- Exception-handling part begins
<exception handling goes here >
WHEN exception1 THEN
exception1-handling-statements
END procedure_name;
- имя процедуры задает имя процедуры.
- Опция [ИЛИ ЗАМЕНИТЬ] позволяет изменить существующую процедуру.
- Дополнительный список параметров содержит имя, режим и типы параметров. IN представляет, что значение будет передано извне, а OUT представляет, что этот параметр будет использоваться для возврата значения вне процедуры. Если режим не указан, предполагается, что параметр имеет режим IN.
- В разделе декларации мы можем объявлять переменные, которые будут использоваться в части тела.
- procedure-body содержит исполняемую часть.
- Ключевое слово AS используется вместо ключевого слова IS для создания автономной процедуры.
- исключение будет обрабатывать исключения из процедуры. Этот раздел не является обязательным.
Привет, мир
Следующая простая процедура отображает текст «Hello World» в клиенте, который поддерживает dbms_output
.
CREATE OR REPLACE PROCEDURE helloworld
AS
BEGIN
dbms_output.put_line('Hello World!');
END;
/
Вам нужно выполнить это в приглашении SQL, чтобы создать процедуру в базе данных, или вы можете запустить запрос ниже, чтобы получить тот же результат:
SELECT 'Hello World!' from dual;
Параметры ввода / вывода
PL / SQL использует ключевые слова IN, OUT, IN OUT для определения того, что может случиться с переданным параметром.
IN указывает, что параметр только для чтения, и значение не может быть изменено процедурой.
OUT указывает, что параметр только для записи, и процедура может назначить ему значение, но не ссылаться на значение.
IN OUT указывает, что параметр доступен для справки и изменения.
PROCEDURE procedureName(x IN INT, strVar IN VARCHAR2, ans OUT VARCHAR2)
...
...
END procedureName;
procedureName(firstvar, secondvar, thirdvar);
Переменные, перечисленные в приведенном выше примере, должны быть напечатаны так, как они определены в разделе параметров процедуры.