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.