Хранимая процедура содержит набор операторов SQL и процедурных операторов. Они могут содержать только процедурные заявления. Определение хранимой процедуры хранится в базе данных, а параметры хранятся в таблицах словаря данных.
преимущества
-
Хранимые процедуры снижают нагрузку на сеть между клиентом и сервером.
-
Обеспечивает лучшую безопасность, поскольку доступ к данным осуществляется через хранимые процедуры, а не напрямую.
-
Обеспечивает лучшее обслуживание, поскольку бизнес-логика проверяется и хранится на сервере.
Хранимые процедуры снижают нагрузку на сеть между клиентом и сервером.
Обеспечивает лучшую безопасность, поскольку доступ к данным осуществляется через хранимые процедуры, а не напрямую.
Обеспечивает лучшее обслуживание, поскольку бизнес-логика проверяется и хранится на сервере.
Процедура создания
Хранимые процедуры создаются с использованием оператора CREATE PROCEDURE.
Синтаксис
Ниже приведен общий синтаксис оператора CREATE PROCEDURE.
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] ) BEGIN <SQL or SPL statements>; END;
пример
Рассмотрим следующую таблицу зарплат.
Сотрудник № | Валовой | дедукция | NetPay |
---|---|---|---|
101 | 40000 | 4000 | 36000 |
102 | 80000 | 6000 | 74000 |
103 | 90000 | 7000 | 83000 |
104 | 75000 | 5000 | 70000 |
В следующем примере создается хранимая процедура с именем InsertSalary для принятия значений и вставки в таблицу зарплат.
CREATE PROCEDURE InsertSalary ( IN in_EmployeeNo INTEGER, IN in_Gross INTEGER, IN in_Deduction INTEGER, IN in_NetPay INTEGER ) BEGIN INSERT INTO Salary ( EmployeeNo, Gross, Deduction, NetPay ) VALUES ( :in_EmployeeNo, :in_Gross, :in_Deduction, :in_NetPay ); END;
Выполнение процедур
Хранимые процедуры выполняются с использованием оператора CALL.
Синтаксис
Ниже приведен общий синтаксис оператора CALL.
CALL <procedure name> [(parameter values)];
пример
В следующем примере вызывается хранимая процедура InsertSalary и вставляется запись в таблицу зарплат.
CALL InsertSalary(105,20000,2000,18000);
Как только вышеуказанный запрос выполнен, он производит следующий вывод, и вы можете видеть вставленную строку в таблице Salary.