viernes, 7 de diciembre de 2012

Crear Store Procedures en Oracle

Store Procedures (Procedimientos Almacenados) en muchas ocasiones se usan para no incluir en nuestros fuentes de la aplicación las consultas que se realizan. La sintaxis que voy a describir es para oracle sin embargo tambien tienen cierta similitud en SQL Server y MySQL.

Por que es importante el uso de estos Procedimientos Almacenados?: aquí

/* Puede usar solo CREATE pero si llegan a hacer una modificación al procedimiento utilicen REPLACE. */

CREATE OR REPLACE PROCEDURE nombre_procedimiento
(
/* Es importante que todos los parametros que se creen les agreguen un sufijo para mantener un orden y estandar. Como consejo!! */
P_PARAM1 NUMBER,
P_PARAM2 VARCHAR,
P_PARAM3 BOOLEAN
)
IS

/******************************************************************************
Al crear un procedimiento podemos incluirle tantos parametros como necesitemos teniendo en cuenta el orden de estos para cuando se llame desde el código.
******************************************************************************/
BEGIN
      /* Podemos inicializar los parametros antes de comenzar con las consultas*/
     P_PARAM3 := true;
     /* En esta parte ya alojan todas consultas que deseen que corran en este procedimiento */ 
    INSERT INTO nombre_table VALUES(P_PARAM1, P_PARAM2, P_PARAM3);
    UPDATE nombre_table SET PARAM2 = P_PARAM2, PARAM3 = P_PARAM3 WHERE PARAM1 = P_PARAM1;
    DELETE FROM nombre_table WHERE PARAM1 = P_PARAM1;END nombre_procedimiento;
/

Con este corto ejemplo espero servir de ayuda para quienes comienzan a crear Store Procedures.


Por ultimo dejo una linea de código para ver como es la llamada del procedimiento.

Línea en C# VB:

DbCommand cmd = db.GetStoredProcCommand("nombre_procedimiento", 1, "dato", true);
n = db.ExecuteNonQuery(cmd);