92 - Procedimientos Almacenados (crear- ejecutar) |
Una librería almacena los datos de sus libros en una tabla denominada "libros".
Eliminamos "libros", creamos la tabla y luego ingresamos algunos registros:
drop table libros; create table libros( titulo varchar2(40), autor varchar2(30), editorial varchar2(20), precio number(5,2) ); insert into libros values('Uno','Richard Bach','Planeta',15); insert into libros values('Ilusiones','Richard Bach','Planeta',18); insert into libros values('El aleph','Borges','Emece',25); insert into libros values('Aprenda PHP','Mario Molina','Nuevo siglo',45); insert into libros values('Matematica estas ahi','Paenza','Nuevo siglo',12); insert into libros values('Java en 10 minutos','Mario Molina','Paidos',35);
La librería, frecuentemente, aumenta los precios de los libros en un 10%. Necesitamos un procedimiento almacenado que actualice los precios de los libros aumentándolos en un 10%:
create or replace procedure pa_libros_aumentar10 as begin update libros set precio=precio+(precio*0.1); end; /
Lo ejecutamos:
execute pa_libros_aumentar10;
Verificamos que los precios han aumentado:
select *from libros;
Volvemos a ejecutar el procedimiento:
execute pa_libros_aumentar10;
Verificamos que los precios han aumentado nuevamente:
select *from libros;
drop table libros; create table libros( titulo varchar2(40), autor varchar2(30), editorial varchar2(20), precio number(5,2) ); insert into libros values('Uno','Richard Bach','Planeta',15); insert into libros values('Ilusiones','Richard Bach','Planeta',18); insert into libros values('El aleph','Borges','Emece',25); insert into libros values('Aprenda PHP','Mario Molina','Nuevo siglo',45); insert into libros values('Matematica estas ahi','Paenza','Nuevo siglo',12); insert into libros values('Java en 10 minutos','Mario Molina','Paidos',35); -- La librería, frecuentemente, aumenta los precios de los libros en un 10%. -- Necesitamos un procedimiento almacenado que actualice los precios de los -- libros aumentándolos en un 10%: create or replace procedure pa_libros_aumentar10 as begin update libros set precio=precio+(precio*0.1); end; / -- Lo ejecutamos: execute pa_libros_aumentar10; -- Verificamos que los precios han aumentado: select * from libros; -- Volvemos a ejecutar el procedimiento: execute pa_libros_aumentar10; -- Verificamos que los precios han aumentado nuevamente: select * from libros;
La ejecución de este lote de comandos SQL genera una salida similar a:
En el panel de la izquierda del programa SQL Developer podemos navegar los distintos objetos creados en la base de datos seleccionada. Hay una entrada específica para los procedimientos almacenados:
Cuando seleccionamos un procedimiento almacenado en particular podemos ejecutarlo, depurarlo con distintas herramientas que nos provee SQL Developer.