Думайте о хранимой процедуре как о методе в вашем коде. Он запускает определенный набор инструкций.
Хранимые процедуры созданы, например, для управления сложными наборами данных, с которыми обычно трудно справиться в вашем коде.
Вы можете создать хранимую процедуру с помощью следующих инструкций:
Oracle
CREATE OR REPLACE PROCEDURE P_PROCEDURE_NAME (
pParameter1 NUMBER
, pParameter2 VARCHAR2(100 Bytes)
) AS
BEGIN
-- Procedure code here...
END;
SQL Server
CREATE PROCEDURE cspProcedureName
@parameter1 int
, @parameter2 nvarchar(100)
AS
-- Procedure code here...
Oracle
Что касается Триггеров , они представляют собой наборы кода, вызываемые при выполнении действия, связанного с соответствующей таблицей. Например, в Oracle нет столбцов INDENTITY
, таких как предложения SQL Server. Вместо этого последовательности используются вместе с триггерами для имитации того же самого. Следовательно, вам нужно создать Oracle SEQUENCE, а затем TRIGGER, чтобы обновить поле идентификатора вашей таблицы.
CREATE SEQUENCE SEQ_CUSTOMERS
MINVALUE 1
MAXVALUE 65535
START WITH 1
INCREMENT BY 1;
CREATE OR REPLACE TRIGGER TRG_CUSTOMERS_INSERT
BEFORE INSERT
ON TBL_CUSTOMERS
FOR EACH ROW
BEGIN
:NEW.CUST_ID := SEQ_CUSTOMERS.NEXTVAL;
END;
SQL Server
Пример триггера в SQL Server - автоматическое обновление даты и времени обновления записи. Учтите следующее:
CREATE TABLE Customers (
CustId int NOT NULL IDENTITY(1, 1) PRIMARY KEY
, CustName nvarchar(100) NOT NULL
, CreatedOn datetime DEFAULT GETDATE()
, LastUpdate datetime NOT NULL
)
GO
CREATE TRIGGER trgCustomersUpdt
AFTER UPDATE
ON Customers
AS
update Customers
set LastUpdate = GETDATE()
where CustId = inserted.Custid
GO
ОТКАЗ
Этот код не был протестирован и может потребовать незначительных изменений для его корректной работы с соответствующей СУБД.
Подводя итог, триггеры в основном используются, как показано здесь, несмотря на то, что есть много других возможных применений, таких как построение истории изменений таблицы, которые произошли в течение времени, хранение всех записей транзакций в таблице истории или лайк. Хранимые процедуры в основном используются для выполнения сложных задач базы данных, где это будет слишком сложно сделать в коде.