SlideShare una empresa de Scribd logo
1 de 12
UD – Planificación y gestión del desarrollo
de software
Actividad 3: Procedimientos
almacenados
Actividad 2: Procedimientos
almacenados
1. Creación de procedimientos
2. Declaración de procedimientos
Procedimientos almacenados
 Un procedimiento almacenado es un conjunto de instrucciones a las que se les
da un nombre, se almacena en la base de datos activa. Permiten agrupar y
organizar tareas repetitivas.
 Ventajas:
 - comparten la lógica de la aplicación con las otras aplicaciones, con lo cual el
acceso y las modificaciones de los datos se hacen en un solo sitio.
 - permiten realizar todas las operaciones que los usuarios necesitan evitando
que tengan acceso directo a las tablas.
 - reducen el tráfico de red; en vez de enviar muchas instrucciones, los usuarios
realizan operaciones enviando una única instrucción, lo cual disminuye el
número de solicitudes entre el cliente y el servidor.
 Un procedimiento almacenados puede hacer referencia a objetos que no
existen al momento de crearlo. Los objetos deben existir cuando se ejecute el
procedimiento almacenado.
Procedimientos Almacenados (crear- ejecutar)
• Al crear un procedimiento almacenado, las instrucciones que contiene se analizan para
verificar si son correctas sintácticamente. Si se encuentra algún error, el
procedimiento se compila, pero aparece un mensaje "con advertencias" que indica tal
situación.
• Un procedimiento almacenado se invoca llamándolo.
• En primer lugar se deben tipear y probar las instrucciones que se incluyen en el
procedimiento almacenado, luego, si se obtiene el resultado esperado, se crea el
procedimiento.
• Los procedimientos almacenados pueden hacer referencia a tablas, vistas, a funciones
definidas por el usuario, a otros procedimientos almacenados.
• Un procedimiento almacenado pueden incluir cualquier cantidad y tipo de
instrucciones DML (de manipulación de datos, como insert, update, delete), no
instrucciones DDL (de definición de datos, como create..., drop... alter...).
• Para crear un procedimiento almacenado empleamos la instrucción "create procedure".
La sintaxis básica parcial es:
• create or replace procedure NOMBREPROCEDIMIENTO
• As
• begin
• INSTRUCCIONES
• end;
Procedimientos Almacenados (crear- ejecutar)
• El bloque de instrucciones comienza luego de "begin" y acaba con "end".
• Si empleamos "or replace", se sobreescribe (se reemplaza) un procedimiento existente; si se
omite y existe un procedimiento con el nombre que le asignamos, Oracle mostrará un
mensaje de error indicando tal situación.
• Para diferenciar los procedimientos almacenados del sistema de los procedimientos
almacenados creados por el usuario use un prefijo, por ejemplo "pa_" cuando les de el
nombre.
• Con las siguientes instrucciones creamos un procedimiento almacenado llamado
"pa_libros_aumentar10" que incrementa en un 10% el precio de todos los libros:
create procedure pa_libros_aumentar10
as
update libros set precio=precio+precio*0.1;
• Entonces, creamos un procedimiento almacenado colocando "create procedure" (o "create
or replace", si es que desea reemplazar el existente), luego el nombre del procedimiento y
seguido de "as" las sentencias que definen el procedimiento.
• Para ejecutar el procedimiento almacenado creado anteriormente tipeamos:
• execute pa_libros_aumentar10;
• Entonces, para ejecutar un procedimiento almacenado colocamos "execute" seguido del
nombre del procedimiento.
PROBLEMA
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
PRIMER PROBLEMA
Una empresa almacena los datos de sus
empleados en una tabla llamada "empleados".
1- Eliminamos la tabla y la creamos:
drop table empleados;
create table empleados(
documento char(8),
nombre varchar2(20),
apellido varchar2(20),
sueldo number(6,2),
cantidadhijos number(2,0),
fechaingreso date,
primary key(documento) );
2- Ingrese algunos registros:
insert into empleados
values('22222222','Juan','Perez',200,2,'10/
10/1980');
insert into empleados
values('22333333','Luis','Lopez',250,0,'01/
02/1990');
insert into empleados
values('22444444','Marta','Perez',350,1,'02
/05/1995');
insert into empleados
values('22555555','Susana','Garcia',400,2,'
15/12/2000');
insert into empleados
values('22666666','Jose
Maria','Morales',500,3,'25/08/2005');
3- Cree (o reemplace) el procedimiento
almacenado llamado "pa_aumentarsueldo" que
aumente los sueldos inferiores al promedio en
un 20%
4- Ejecute el procedimiento creado
anteriormente
5- Verifique que los sueldos han aumentado
6- Ejecute el procedimiento nuevamente
7- Verifique que los sueldos han aumentado
8- Elimine la tabla "empleados_antiguos"
9- Cree la tabla "empleados_antiguos"
create table empleados_antiguos(
documento char(8), nombre
varchar2(40) );
10- Cree (o reemplace) un procedimiento
almacenado que ingrese en la tabla
"empleados_antiguos" el documento, nombre y
apellido (concatenados) de todos los
empleados de la tabla "empleados" que
ingresaron a la empresa hace más de 10 años
11- Ejecute el procedimiento creado
anteriormente
12- Verifique que la tabla
"empleados_antiguos" ahora tiene registros (3
registros)
PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)
 Los procedimientos almacenados pueden recibir y devolver información; para ello se emplean
parámetros.
 Veamos los primeros. Los parámetros de entrada posibilitan pasar información a un
procedimiento. Para que un procedimiento almacenado admita parámetros de entrada se
deben declarar al crearlo. La sintaxis es:
create or replace procedure NOMBREPROCEDIMIENTO (PARAMETRO in TIPODEDATO)
as
begin
INSTRUCCIONES;
end;
 Los parámetros se definen luego del nombre del procedimiento. Pueden declararse varios
parámetros por procedimiento, se separan por comas.
 Cuando el procedimiento es ejecutado, deben explicitarse valores para cada uno de los
parámetros (en el orden que fueron definidos), a menos que se haya definido un valor por
defecto, en tal caso, pueden omitirse.
 Creamos un procedimiento que recibe el nombre de una editorial como parámetro y luego lo
utiliza para aumentar los precios de tal editorial:
create or replace procedure pa_libros_aumentar10(aeditorial in varchar2)
as
begin
update libros set precio=precio+(precio*0.1) where editorial=aeditorial;
end;
 El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del
procedimiento y un valor para el parámetro:
 execute pa_libros_aumentar10('Planeta');
 Luego de definir un parámetro y su tipo, opcionalmente, se puede especificar un valor por
defecto; tal valor es el que asume el procedimiento al ser ejecutado si no recibe parámetros.
Si no se coloca valor por defecto, un procedimiento definido con parámetros no puede
ejecutarse sin valores para ellos. El valor por defecto puede ser "null" o una constante
PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)
 Creamos otro procedimiento que recibe 2 parámetros, el nombre de una editorial y el valor de
incremento (que tiene por defecto el valor 10):
create or replace procedure pa_libros_aumentar(aeditorial in varchar2,aporcentaje in number default 10)
as
begin
update libros set precio=precio+(precio*aporcentaje/100) where editorial=aeditorial;
end;
 El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del
procedimiento y los valores para los parámetros separados por comas:
 execute pa_libros_aumentar('Planeta',30);
 Podemos omitir el segundo parámetro al invocar el procedimiento porque tiene establecido un
valor por defecto:
 execute pa_libros_aumentar('Planeta');
 En caso que un procedimiento tenga definidos varios parámetros con valores por defecto y al
invocarlo colocamos uno solo, Oracle asume que es el primero de ellos. si son de tipos de datos
diferentes, Oracle los convierte. Por ejemplo, definimos un procedimiento almacenado de la
siguiente manera:
create or replace procedure pa_libros_insertar (atitulo in varchar2 default null, aautor in varchar2 default
'desconocido', aeditorial in varchar2 default 'sin especificar', aprecio in number default 0) as
begin
insert into libros values (atitulo,aautor,aeditorial,aprecio);
end;
 Si luego llamamos al procedimiento enviándoles solamente el primer y cuarto parámetro
correspondientes al título y precio:
 execute pa_libros_insertar('Uno',100);
 Oracle asume que los argumentos son el primero y segundo, el registro que se almacenará será:
 Uno,100,sin especificar,0;
PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)
Trabajamos con la tabla "libros" de una librería.
Eliminamos la tabla y la creamos nuevamente:
drop table libros;
create table libros(
titulo varchar2(40),
autor varchar2(30),
editorial varchar2(20),
precio number(5,2) );
Ingresamos algunos registros:
insert into libros values ('Uno','Richard Bach','Planeta',15);
insert into libros values ('Ilusiones','Richard
Bach','Planeta',12);
insert into libros values ('El aleph','Borges','Emece',25);
insert into libros values ('Aprenda PHP','Mario
Molina','Nuevo siglo',50);
insert into libros values ('Matematica estas
ahi','Paenza','Nuevo siglo',18);
insert into libros values ('Puente al infinito','Bach
Richard','Sudamericana',14);
insert into libros values ('Antología','J. L.
Borges','Paidos',24);
insert into libros values ('Java en 10 minutos','Mario
Molina','Siglo XXI',45);
insert into libros values ('Cervantes y el quijote','Borges-
Casares','Planeta',34);
Creamos un procedimiento que recibe el nombre de una
editorial y luego aumenta en un 10% los precios de los
libros de tal editorial:
create or replace procedure
pa_libros_aumentar10(aeditorial in varchar2)
as
begin
update libros set precio=precio+(precio*0.1) where
editorial=aeditorial;
end;
Ejecutamos el procedimiento:
execute pa_libros_aumentar10('Planeta');
Verificamos que los precios de los libros de la editorial
"Planeta" han aumentado un 10%:
select *from libros;
Creamos otro procedimiento que recibe 2 parámetros,
el nombre de una editorial y el valor de incremento (que
tiene por defecto el valor 10):
create or replace procedure
pa_libros_aumentar(aeditorial in varchar2,aporcentaje in
number default 10) as begin update libros set
precio=precio+(precio*aporcentaje/100) where
editorial=aeditorial; end;
Ejecutamos el procedimiento enviando valores para
ambos argumentos:
execute pa_libros_aumentar('Planeta',30);
Consultamos la tabla "libros" para verificar que los
precios de los libros de la editorial "Planeta" han sido
aumentados en un 30%:
select *from libros;
 Ejecutamos el procedimiento "pa_libros_aumentar" omitiendo el segundo parámetro porque
tiene establecido un valor por defecto:
 execute pa_libros_aumentar('Paidos');
 Consultamos la tabla "libros" para verificar que los precios de los libros de la editorial "Paidos"
han sido aumentados en un 10% (valor por defecto):
 select *from libros;
 Definimos un procedimiento almacenado que ingrese un nuevo libro en la tabla "libros":
 create or replace procedure pa_libros_insertar (atitulo in varchar2 default null, aautor in varchar2
default 'desconocido', aeditorial in varchar2 default 'sin especificar', aprecio in number default 0)
as begin insert into libros values (atitulo,aautor,aeditorial,aprecio); end;
 Llamamos al procedimiento sin enviarle valores para los parámetros:
 execute pa_libros_insertar;
 Veamos cómo se almacenó el registro:
 select *from libros;
 Llamamos al procedimiento enviándole valores solamente para el primer y cuarto parámetros
correspondientes al título y precio:
 execute pa_libros_insertar('Uno',100);
 Oracle asume que los argumentos son el primero y segundo, vea cómo se almacenó el nuevo
registro:
 select *from libros;
PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)
Una empresa almacena los datos de sus
empleados en una tabla llamada "empleados".
1- Eliminamos la tabla y la creamos:
drop table empleados;
create table empleados(
documento char(8),
nombre varchar2(20),
apellido varchar2(20),
sueldo number(6,2),
fechaingreso date );
2- Ingrese algunos registros:
insert into empleados
values('22222222','Juan','Perez',300,'10/10
/1980');
insert into empleados
values('22333333','Luis','Lopez',300,'12/05/
1998');
insert into empleados
values('22444444','Marta','Perez',500,'25/0
8/1990');
insert into empleados
values('22555555','Susana','Garcia',400,'05
/05/2000');
insert into empleados
values('22666666','Jose
Maria','Morales',400,'24/10/2005');
3- Cree un procedimiento almacenado llamado
"pa_empleados_aumentarsueldo". Debe
incrementar el sueldo de los empleados con
cierta cantidad de años en la empresa
(parámetro "ayear" de tipo numérico) en un
porcentaje (parámetro "aporcentaje" de tipo
numerico); es decir, recibe 2 parámetros.
4- Ejecute el procedimiento creado
5- Verifique que los sueldos de los empleados con más de 10 años
en la empresa han aumentado un 20%
6- Ejecute el procedimiento creado anteriormente enviando otros
valores como parámetros (por ejemplo, 8 y 10)
7- Verifique que los sueldos de los empleados con más de 8 años
en la empresa han aumentado un 10%
8- Ejecute el procedimiento almacenado
"pa_empleados_aumentarsueldo" sin parámetros
9- Cree un procedimiento almacenado llamado
"pa_empleados_ingresar" que ingrese un empleado en la tabla
"empleados", debe recibir valor para el documento, el nombre,
apellido y almacenar valores nulos en los campos "sueldo" y
"fechaingreso"
10- Ejecute el procedimiento creado anteriormente y verifique si
se ha ingresado en "empleados" un nuevo registro
11- Reemplace el procedimiento almacenado llamado
"pa_empleados_ingresar" para que ingrese un empleado en la
tabla "empleados", debe recibir valor para el documento (con
valor por defecto nulo) y fechaingreso (con la fecha actual como
valor por defecto), los demás campos se llenan con valor nulo
12- Ejecute el procedimiento creado anteriormente enviándole
valores para los 2 parámetros y verifique si se ha ingresado en
"empleados" un nuevo registro
13- Ejecute el procedimiento creado anteriormente enviando
solamente la fecha de ingreso y vea el resultado
Oracle toma el valor enviado como primer argumento e intenta
ingresarlo en el campo "documento", muestra un mensaje de
error indicando que el valor es muy grande, ya que tal campo
admite 8 caracteres.
14- Cree (o reemplace) un procedimiento almacenado que reciba
un documento y elimine de la tabla "empleados" el empleado que
coincida con dicho documento
15- Elimine un empleado empleando el procedimiento del punto
anterior
16- Verifique la eliminación
PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)

Más contenido relacionado

La actualidad más candente

Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISAnthony Mejias
 
Ensayo. Enrutamiento entre las VLAN
Ensayo. Enrutamiento entre las VLANEnsayo. Enrutamiento entre las VLAN
Ensayo. Enrutamiento entre las VLANliras loca
 
Bases de datos distribuidas y bases de datos cliente
Bases de datos distribuidas y bases de datos clienteBases de datos distribuidas y bases de datos cliente
Bases de datos distribuidas y bases de datos clienteGerardo
 
Tipos de usuarios en una base de datos
Tipos de usuarios en una base de datosTipos de usuarios en una base de datos
Tipos de usuarios en una base de datosjenpes
 
Bus de datos, dirección y control
Bus de datos, dirección y controlBus de datos, dirección y control
Bus de datos, dirección y controlJulian1784
 
Instalacion de sistemas operativos
Instalacion de sistemas operativosInstalacion de sistemas operativos
Instalacion de sistemas operativosAndres Ldño
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosLuis Dario Gomez
 
Presentacion interrupciones
Presentacion interrupcionesPresentacion interrupciones
Presentacion interrupcionesCarlos Castro
 
Modelos de software ventajas y desventajas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajasEdith Carreño
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLLuiS YmAY
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datosJosé Mendoza
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 

La actualidad más candente (20)

Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
 
Ensayo. Enrutamiento entre las VLAN
Ensayo. Enrutamiento entre las VLANEnsayo. Enrutamiento entre las VLAN
Ensayo. Enrutamiento entre las VLAN
 
Capacitacion neo4j
Capacitacion neo4jCapacitacion neo4j
Capacitacion neo4j
 
Bases de datos distribuidas y bases de datos cliente
Bases de datos distribuidas y bases de datos clienteBases de datos distribuidas y bases de datos cliente
Bases de datos distribuidas y bases de datos cliente
 
Tipos de usuarios en una base de datos
Tipos de usuarios en una base de datosTipos de usuarios en una base de datos
Tipos de usuarios en una base de datos
 
Servidor web apache
Servidor web apache Servidor web apache
Servidor web apache
 
Bus de datos, dirección y control
Bus de datos, dirección y controlBus de datos, dirección y control
Bus de datos, dirección y control
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
 
Instalacion de sistemas operativos
Instalacion de sistemas operativosInstalacion de sistemas operativos
Instalacion de sistemas operativos
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Papel de-un-analista-de-sistemas
Papel de-un-analista-de-sistemasPapel de-un-analista-de-sistemas
Papel de-un-analista-de-sistemas
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Presentacion interrupciones
Presentacion interrupcionesPresentacion interrupciones
Presentacion interrupciones
 
Modelos de software ventajas y desventajas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajas
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datos
 
ospf isis
ospf   isisospf   isis
ospf isis
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 

Similar a Procedimientos almacenados: parámetros de entrada

PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videosPROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videosJuanMiguelCustodioMo
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenadoshirmaroxana13
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datosAdriana Becerra
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosHarold Perez
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos AlmacenadosRafa
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Temas programacion java_2
Temas programacion java_2Temas programacion java_2
Temas programacion java_2Wally IG
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Juan Manuel
 

Similar a Procedimientos almacenados: parámetros de entrada (20)

PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videosPROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Disparadores 1213820550525607-9
Disparadores 1213820550525607-9Disparadores 1213820550525607-9
Disparadores 1213820550525607-9
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Postgres trigger
Postgres triggerPostgres trigger
Postgres trigger
 
Resulset
ResulsetResulset
Resulset
 
Pa
PaPa
Pa
 
Temas programacion java_2
Temas programacion java_2Temas programacion java_2
Temas programacion java_2
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 

Último

BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 

Último (20)

BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 

Procedimientos almacenados: parámetros de entrada

  • 1. UD – Planificación y gestión del desarrollo de software Actividad 3: Procedimientos almacenados
  • 2. Actividad 2: Procedimientos almacenados 1. Creación de procedimientos 2. Declaración de procedimientos
  • 3. Procedimientos almacenados  Un procedimiento almacenado es un conjunto de instrucciones a las que se les da un nombre, se almacena en la base de datos activa. Permiten agrupar y organizar tareas repetitivas.  Ventajas:  - comparten la lógica de la aplicación con las otras aplicaciones, con lo cual el acceso y las modificaciones de los datos se hacen en un solo sitio.  - permiten realizar todas las operaciones que los usuarios necesitan evitando que tengan acceso directo a las tablas.  - reducen el tráfico de red; en vez de enviar muchas instrucciones, los usuarios realizan operaciones enviando una única instrucción, lo cual disminuye el número de solicitudes entre el cliente y el servidor.  Un procedimiento almacenados puede hacer referencia a objetos que no existen al momento de crearlo. Los objetos deben existir cuando se ejecute el procedimiento almacenado.
  • 4. Procedimientos Almacenados (crear- ejecutar) • Al crear un procedimiento almacenado, las instrucciones que contiene se analizan para verificar si son correctas sintácticamente. Si se encuentra algún error, el procedimiento se compila, pero aparece un mensaje "con advertencias" que indica tal situación. • Un procedimiento almacenado se invoca llamándolo. • En primer lugar se deben tipear y probar las instrucciones que se incluyen en el procedimiento almacenado, luego, si se obtiene el resultado esperado, se crea el procedimiento. • Los procedimientos almacenados pueden hacer referencia a tablas, vistas, a funciones definidas por el usuario, a otros procedimientos almacenados. • Un procedimiento almacenado pueden incluir cualquier cantidad y tipo de instrucciones DML (de manipulación de datos, como insert, update, delete), no instrucciones DDL (de definición de datos, como create..., drop... alter...). • Para crear un procedimiento almacenado empleamos la instrucción "create procedure". La sintaxis básica parcial es: • create or replace procedure NOMBREPROCEDIMIENTO • As • begin • INSTRUCCIONES • end;
  • 5. Procedimientos Almacenados (crear- ejecutar) • El bloque de instrucciones comienza luego de "begin" y acaba con "end". • Si empleamos "or replace", se sobreescribe (se reemplaza) un procedimiento existente; si se omite y existe un procedimiento con el nombre que le asignamos, Oracle mostrará un mensaje de error indicando tal situación. • Para diferenciar los procedimientos almacenados del sistema de los procedimientos almacenados creados por el usuario use un prefijo, por ejemplo "pa_" cuando les de el nombre. • Con las siguientes instrucciones creamos un procedimiento almacenado llamado "pa_libros_aumentar10" que incrementa en un 10% el precio de todos los libros: create procedure pa_libros_aumentar10 as update libros set precio=precio+precio*0.1; • Entonces, creamos un procedimiento almacenado colocando "create procedure" (o "create or replace", si es que desea reemplazar el existente), luego el nombre del procedimiento y seguido de "as" las sentencias que definen el procedimiento. • Para ejecutar el procedimiento almacenado creado anteriormente tipeamos: • execute pa_libros_aumentar10; • Entonces, para ejecutar un procedimiento almacenado colocamos "execute" seguido del nombre del procedimiento.
  • 6. PROBLEMA 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
  • 7. PRIMER PROBLEMA Una empresa almacena los datos de sus empleados en una tabla llamada "empleados". 1- Eliminamos la tabla y la creamos: drop table empleados; create table empleados( documento char(8), nombre varchar2(20), apellido varchar2(20), sueldo number(6,2), cantidadhijos number(2,0), fechaingreso date, primary key(documento) ); 2- Ingrese algunos registros: insert into empleados values('22222222','Juan','Perez',200,2,'10/ 10/1980'); insert into empleados values('22333333','Luis','Lopez',250,0,'01/ 02/1990'); insert into empleados values('22444444','Marta','Perez',350,1,'02 /05/1995'); insert into empleados values('22555555','Susana','Garcia',400,2,' 15/12/2000'); insert into empleados values('22666666','Jose Maria','Morales',500,3,'25/08/2005'); 3- Cree (o reemplace) el procedimiento almacenado llamado "pa_aumentarsueldo" que aumente los sueldos inferiores al promedio en un 20% 4- Ejecute el procedimiento creado anteriormente 5- Verifique que los sueldos han aumentado 6- Ejecute el procedimiento nuevamente 7- Verifique que los sueldos han aumentado 8- Elimine la tabla "empleados_antiguos" 9- Cree la tabla "empleados_antiguos" create table empleados_antiguos( documento char(8), nombre varchar2(40) ); 10- Cree (o reemplace) un procedimiento almacenado que ingrese en la tabla "empleados_antiguos" el documento, nombre y apellido (concatenados) de todos los empleados de la tabla "empleados" que ingresaron a la empresa hace más de 10 años 11- Ejecute el procedimiento creado anteriormente 12- Verifique que la tabla "empleados_antiguos" ahora tiene registros (3 registros)
  • 8. PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)  Los procedimientos almacenados pueden recibir y devolver información; para ello se emplean parámetros.  Veamos los primeros. Los parámetros de entrada posibilitan pasar información a un procedimiento. Para que un procedimiento almacenado admita parámetros de entrada se deben declarar al crearlo. La sintaxis es: create or replace procedure NOMBREPROCEDIMIENTO (PARAMETRO in TIPODEDATO) as begin INSTRUCCIONES; end;  Los parámetros se definen luego del nombre del procedimiento. Pueden declararse varios parámetros por procedimiento, se separan por comas.  Cuando el procedimiento es ejecutado, deben explicitarse valores para cada uno de los parámetros (en el orden que fueron definidos), a menos que se haya definido un valor por defecto, en tal caso, pueden omitirse.  Creamos un procedimiento que recibe el nombre de una editorial como parámetro y luego lo utiliza para aumentar los precios de tal editorial: create or replace procedure pa_libros_aumentar10(aeditorial in varchar2) as begin update libros set precio=precio+(precio*0.1) where editorial=aeditorial; end;  El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del procedimiento y un valor para el parámetro:  execute pa_libros_aumentar10('Planeta');  Luego de definir un parámetro y su tipo, opcionalmente, se puede especificar un valor por defecto; tal valor es el que asume el procedimiento al ser ejecutado si no recibe parámetros. Si no se coloca valor por defecto, un procedimiento definido con parámetros no puede ejecutarse sin valores para ellos. El valor por defecto puede ser "null" o una constante
  • 9. PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)  Creamos otro procedimiento que recibe 2 parámetros, el nombre de una editorial y el valor de incremento (que tiene por defecto el valor 10): create or replace procedure pa_libros_aumentar(aeditorial in varchar2,aporcentaje in number default 10) as begin update libros set precio=precio+(precio*aporcentaje/100) where editorial=aeditorial; end;  El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del procedimiento y los valores para los parámetros separados por comas:  execute pa_libros_aumentar('Planeta',30);  Podemos omitir el segundo parámetro al invocar el procedimiento porque tiene establecido un valor por defecto:  execute pa_libros_aumentar('Planeta');  En caso que un procedimiento tenga definidos varios parámetros con valores por defecto y al invocarlo colocamos uno solo, Oracle asume que es el primero de ellos. si son de tipos de datos diferentes, Oracle los convierte. Por ejemplo, definimos un procedimiento almacenado de la siguiente manera: create or replace procedure pa_libros_insertar (atitulo in varchar2 default null, aautor in varchar2 default 'desconocido', aeditorial in varchar2 default 'sin especificar', aprecio in number default 0) as begin insert into libros values (atitulo,aautor,aeditorial,aprecio); end;  Si luego llamamos al procedimiento enviándoles solamente el primer y cuarto parámetro correspondientes al título y precio:  execute pa_libros_insertar('Uno',100);  Oracle asume que los argumentos son el primero y segundo, el registro que se almacenará será:  Uno,100,sin especificar,0;
  • 10. PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA) Trabajamos con la tabla "libros" de una librería. Eliminamos la tabla y la creamos nuevamente: drop table libros; create table libros( titulo varchar2(40), autor varchar2(30), editorial varchar2(20), precio number(5,2) ); Ingresamos algunos registros: insert into libros values ('Uno','Richard Bach','Planeta',15); insert into libros values ('Ilusiones','Richard Bach','Planeta',12); insert into libros values ('El aleph','Borges','Emece',25); insert into libros values ('Aprenda PHP','Mario Molina','Nuevo siglo',50); insert into libros values ('Matematica estas ahi','Paenza','Nuevo siglo',18); insert into libros values ('Puente al infinito','Bach Richard','Sudamericana',14); insert into libros values ('Antología','J. L. Borges','Paidos',24); insert into libros values ('Java en 10 minutos','Mario Molina','Siglo XXI',45); insert into libros values ('Cervantes y el quijote','Borges- Casares','Planeta',34); Creamos un procedimiento que recibe el nombre de una editorial y luego aumenta en un 10% los precios de los libros de tal editorial: create or replace procedure pa_libros_aumentar10(aeditorial in varchar2) as begin update libros set precio=precio+(precio*0.1) where editorial=aeditorial; end; Ejecutamos el procedimiento: execute pa_libros_aumentar10('Planeta'); Verificamos que los precios de los libros de la editorial "Planeta" han aumentado un 10%: select *from libros; Creamos otro procedimiento que recibe 2 parámetros, el nombre de una editorial y el valor de incremento (que tiene por defecto el valor 10): create or replace procedure pa_libros_aumentar(aeditorial in varchar2,aporcentaje in number default 10) as begin update libros set precio=precio+(precio*aporcentaje/100) where editorial=aeditorial; end; Ejecutamos el procedimiento enviando valores para ambos argumentos: execute pa_libros_aumentar('Planeta',30); Consultamos la tabla "libros" para verificar que los precios de los libros de la editorial "Planeta" han sido aumentados en un 30%: select *from libros;
  • 11.  Ejecutamos el procedimiento "pa_libros_aumentar" omitiendo el segundo parámetro porque tiene establecido un valor por defecto:  execute pa_libros_aumentar('Paidos');  Consultamos la tabla "libros" para verificar que los precios de los libros de la editorial "Paidos" han sido aumentados en un 10% (valor por defecto):  select *from libros;  Definimos un procedimiento almacenado que ingrese un nuevo libro en la tabla "libros":  create or replace procedure pa_libros_insertar (atitulo in varchar2 default null, aautor in varchar2 default 'desconocido', aeditorial in varchar2 default 'sin especificar', aprecio in number default 0) as begin insert into libros values (atitulo,aautor,aeditorial,aprecio); end;  Llamamos al procedimiento sin enviarle valores para los parámetros:  execute pa_libros_insertar;  Veamos cómo se almacenó el registro:  select *from libros;  Llamamos al procedimiento enviándole valores solamente para el primer y cuarto parámetros correspondientes al título y precio:  execute pa_libros_insertar('Uno',100);  Oracle asume que los argumentos son el primero y segundo, vea cómo se almacenó el nuevo registro:  select *from libros; PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)
  • 12. Una empresa almacena los datos de sus empleados en una tabla llamada "empleados". 1- Eliminamos la tabla y la creamos: drop table empleados; create table empleados( documento char(8), nombre varchar2(20), apellido varchar2(20), sueldo number(6,2), fechaingreso date ); 2- Ingrese algunos registros: insert into empleados values('22222222','Juan','Perez',300,'10/10 /1980'); insert into empleados values('22333333','Luis','Lopez',300,'12/05/ 1998'); insert into empleados values('22444444','Marta','Perez',500,'25/0 8/1990'); insert into empleados values('22555555','Susana','Garcia',400,'05 /05/2000'); insert into empleados values('22666666','Jose Maria','Morales',400,'24/10/2005'); 3- Cree un procedimiento almacenado llamado "pa_empleados_aumentarsueldo". Debe incrementar el sueldo de los empleados con cierta cantidad de años en la empresa (parámetro "ayear" de tipo numérico) en un porcentaje (parámetro "aporcentaje" de tipo numerico); es decir, recibe 2 parámetros. 4- Ejecute el procedimiento creado 5- Verifique que los sueldos de los empleados con más de 10 años en la empresa han aumentado un 20% 6- Ejecute el procedimiento creado anteriormente enviando otros valores como parámetros (por ejemplo, 8 y 10) 7- Verifique que los sueldos de los empleados con más de 8 años en la empresa han aumentado un 10% 8- Ejecute el procedimiento almacenado "pa_empleados_aumentarsueldo" sin parámetros 9- Cree un procedimiento almacenado llamado "pa_empleados_ingresar" que ingrese un empleado en la tabla "empleados", debe recibir valor para el documento, el nombre, apellido y almacenar valores nulos en los campos "sueldo" y "fechaingreso" 10- Ejecute el procedimiento creado anteriormente y verifique si se ha ingresado en "empleados" un nuevo registro 11- Reemplace el procedimiento almacenado llamado "pa_empleados_ingresar" para que ingrese un empleado en la tabla "empleados", debe recibir valor para el documento (con valor por defecto nulo) y fechaingreso (con la fecha actual como valor por defecto), los demás campos se llenan con valor nulo 12- Ejecute el procedimiento creado anteriormente enviándole valores para los 2 parámetros y verifique si se ha ingresado en "empleados" un nuevo registro 13- Ejecute el procedimiento creado anteriormente enviando solamente la fecha de ingreso y vea el resultado Oracle toma el valor enviado como primer argumento e intenta ingresarlo en el campo "documento", muestra un mensaje de error indicando que el valor es muy grande, ya que tal campo admite 8 caracteres. 14- Cree (o reemplace) un procedimiento almacenado que reciba un documento y elimine de la tabla "empleados" el empleado que coincida con dicho documento 15- Elimine un empleado empleando el procedimiento del punto anterior 16- Verifique la eliminación PROCEDIMIENTOS ALMACENADOS (PARÁMETROS DE ENTRADA)