Teradata - procedimento armazenado
Um procedimento armazenado contém um conjunto de instruções SQL e instruções procedurais. Eles podem conter apenas declarações processuais. A definição do procedimento armazenado é armazenada em banco de dados e os parâmetros são armazenados em tabelas de dicionário de dados.
Vantagens
Os procedimentos armazenados reduzem a carga da rede entre o cliente e o servidor.
Oferece melhor segurança, pois os dados são acessados por meio de procedimentos armazenados em vez de acessá-los diretamente.
Oferece melhor manutenção, pois a lógica de negócios é testada e armazenada no servidor.
Procedimento de Criação
Procedimentos armazenados são criados usando a instrução CREATE PROCEDURE.
Sintaxe
A seguir está a sintaxe genérica da instrução CREATE PROCEDURE.
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] )
BEGIN
<SQL or SPL statements>;
END;
Exemplo
Considere a seguinte Tabela Salarial.
EmployeeNo | Bruto | Dedução | Pagamento líquido |
---|---|---|---|
101 | 40.000 | 4.000 | 36.000 |
102 | 80.000 | 6.000 | 74.000 |
103 | 90.000 | 7.000 | 83.000 |
104 | 75.000 | 5.000 | 70.000 |
O exemplo a seguir cria um procedimento armazenado denominado InsertSalary para aceitar os valores e inserir na Tabela Salário.
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;
Procedimentos de execução
Os procedimentos armazenados são executados usando a instrução CALL.
Sintaxe
A seguir está a sintaxe genérica da instrução CALL.
CALL <procedure name> [(parameter values)];
Exemplo
O exemplo a seguir chama o procedimento armazenado InsertSalary e insere registros na Tabela Salário.
CALL InsertSalary(105,20000,2000,18000);
Uma vez que a consulta acima é executada, ela produz a seguinte saída e você pode ver a linha inserida na tabela Salário.
EmployeeNo | Bruto | Dedução | Pagamento líquido |
---|---|---|---|
101 | 40.000 | 4.000 | 36.000 |
102 | 80.000 | 6.000 | 74.000 |
103 | 90.000 | 7.000 | 83.000 |
104 | 75.000 | 5.000 | 70.000 |
105 | 20.000 | 2.000 | 18.000 |