Поиск…


Вступление

Процедура 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);

Переменные, перечисленные в приведенном выше примере, должны быть напечатаны так, как они определены в разделе параметров процедуры.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow