Teradata - Procedimiento almacenado
Un procedimiento almacenado contiene un conjunto de sentencias SQL y sentencias de procedimiento. Pueden contener solo declaraciones de procedimiento. La definición de procedimiento almacenado se almacena en la base de datos y los parámetros se almacenan en tablas de diccionario de datos.
Ventajas
Los procedimientos almacenados reducen la carga de red entre el cliente y el servidor.
Proporciona mayor seguridad ya que se accede a los datos a través de procedimientos almacenados en lugar de acceder a ellos directamente.
Ofrece un mejor mantenimiento ya que la lógica empresarial se prueba y se almacena en el servidor.
Procedimiento de creación
Los procedimientos almacenados se crean mediante la instrucción CREATE PROCEDURE.
Sintaxis
A continuación se muestra la sintaxis genérica de la instrucción CREATE PROCEDURE.
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] )
BEGIN
<SQL or SPL statements>;
END;
Ejemplo
Considere la siguiente tabla de sueldos.
Numero de empleado | Bruto | Deducción | Salario neto |
---|---|---|---|
101 | 40.000 | 4000 | 36.000 |
102 | 80.000 | 6.000 | 74.000 |
103 | 90.000 | 7.000 | 83.000 |
104 | 75.000 | 5,000 | 70.000 |
El siguiente ejemplo crea un procedimiento almacenado denominado InsertSalary para aceptar los valores e insertarlos en la tabla de sueldos.
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;
Procedimientos de ejecución
Los procedimientos almacenados se ejecutan mediante la instrucción CALL.
Sintaxis
A continuación se muestra la sintaxis genérica de la instrucción CALL.
CALL <procedure name> [(parameter values)];
Ejemplo
El siguiente ejemplo llama al procedimiento almacenado InsertSalary e inserta registros en la tabla de sueldos.
CALL InsertSalary(105,20000,2000,18000);
Una vez que se ejecuta la consulta anterior, produce el siguiente resultado y puede ver la fila insertada en la tabla Salario.
Numero de empleado | Bruto | Deducción | Salario neto |
---|---|---|---|
101 | 40.000 | 4000 | 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 | 2000 | 18.000 |