Filtro CPL Polarizado ventajas

PL SQL insert update delete select into [examples]

 Veremos como implementar procedimientos almacenados con programación PL/SQL de Oracle. Los procedimientos almacenados nos servirán para programar rutinas que queramos tener automatizadas y definidas previamente.

Responderemos:

    - ¿Como crear un procedimiento almacenado en Oracle PL/SQSL? 

    - ¿Como ejecutar un procedimiento almacenado en Oracle PL/SQL?

    - Trabajar con entradas y salidas de parámetros de un procedimientos almacenado y retornar registro

En este blog crearemos sólo procedimientos almacenados para hacer consultas SELECT, INSERT, UPDATE y DELETE en su forma mas sencilla, ya que se pueden hacer tan complejos como se requiera. 

Necesitamos tener instalador el servicio de base de datos de Oracle, en mi caso tengo la versión Oracle DataBase 11g  Express Edition pero los procedimientos almacenados que haremos nos servirán para prácticamente todas las versiones de Oracle. También necesitaremos el Oracle SQL Developer.

Empecemos. 

De entrada debemos crear una tabla o al menos tener una tabla para que en ella se apliquen o se dirijan los procedimientos almacenados.

Yo tengo la tabla PERSONA y con los siguientes atributos.

ID    NUMBER(5,0)    
NOMBRE    VARCHAR2(100 BYTE)   
APELLIDO    VARCHAR2(100 BYTE)    
TELEFONO    VARCHAR2(100 BYTE)    
CIUDAD    VARCHAR2(100 BYTE)  
DOMICILIO    VARCHAR2(100 BYTE)   
RFC    VARCHAR2(100 BYTE)   
CURP    VARCHAR2(100 BYTE)   

 

De lado izquierdo de nuestro SQL Developer tenemos la lista de objetos que podemos trabajar

Nos interesan el apartado de Tablas y Procedimientos solo tenemos que dar click derecno en tablas o procedimientos y seleccionar Nuevo, y el software nos guiará para poder crear nuestro objeto Tabla o Procedimiento. El que nos interesa en este momento es crear un procedimiento. 

Daremos click derecho sobre Procedimientos y  click en Nuevo Procedimiento, le pondremos un nombre e indicaremos que parámetros, tipo de dato y modo serán. El nombre de es como yo quiera trabajar a la variable en el procedimiento, el modo indica si será de entrada(IN) o se salida(OUT) y el tipo se refiere al tipo de dato y tiene que ser igual con el que quiera hacer match al de la tabla ya existente. 

En el ejemplo de la imagen estoy definiendo un nombre SP_SELECT_PERSONAS_BYID, es decir voy a seleccionar solo aquel registro que tenga o que coincida con dicho ID de entrada que lo defino como IN_ID modo IN, dicho parámetro se lo tengo que pasar cuando yo ejecute el procedimiento. Los demás parámetros  los he definido como de salida (OUT), es decir esos son los parámetros que recibiré al ejecutar el procedimiento.  

Podemos omitir la definición de parámetros de entrada y salida en esta ventana, ya que podemos declararlos manualmente en el código PL/SQL. 

Cuando hacemos el INTO es cuando pasamos los datos del SELECT a las variables de salida.

Una vez que tengamos esta parte ya podemos compilar nuestro procedimiento almacenado, podemos presionar ctrol + s para guardar los cambios y automáticamente se compila.

 

 


Continuamos haciendo de manera similar para los siguientes procedimientos. Este procedimiento es para insertar un nuevo registro por tanto para nuestras necesidades todas las variables son de entrada. Agregaremos otro para actualizar un registro 

  También agregamos otro para eliminar un registro por su ID

Para ejecutar los procedimientos almacenados en el ambiente de SQL Developer debemos dar click en el botón ejecutar
 D

Posteriormente nos pedirá los datos correspondientes, en este caso estoy ejecutando el que selecciona por id, por lo tanto le paso el valor del ID que yo quiera y que existe en la tabla PERSONA.

Al darle Aceptar me retornará los resultados de la consulta.



Aquí ya tenemos los resultados.

Y de esta manera podemos checar que nuestros procedimientos se están ejecutando correctamente.

Claro!, esto es en su forma muy básica, porque puede ser que le mandemos un ID que no exista y truene nuestro procedimiento, entonces debemos meterle excepciones o comparaciones para validar dichos errores. 

En otro blog publicaré procedimientos mas elaborados con excepciones y validaciones. También veremos como ejecutarlos desde Java y como mandar y recibir los parámetros. Además que también queda pendiente como retornar varios registros (cuando hacemos un SELECT * FROM) en un solo procedimiento. 

Sería todo por el momento...

Cualquier duda o comentario es bienvenido.

Saludos!!

Comentarios