Actualizar datos
Enviado por darksoul18 • 8 de Abril de 2013 • 637 Palabras (3 Páginas) • 343 Visitas
Actividades
1)
• El cliente Banco de Chile ha enviado su nuevo número de teléfono y dirección, esta es 234567 y “Calle Baquedano 23” respectivamente.
• Se solicita a Usted, crear un procedimiento almacenado que permita actualizar la tabla clientes, considerando que pueden haber más clientes que pueden actualizar sus datos. Considere actualizar sólo el teléfono y dirección de un determinado cliente
create or replace procedure act_cte (xrut in varchar2, xdir in varchar2,
xfono in number, xok in out number) as
begin
update cliente set direccion = xdir, telefono = xfono
where rutcliente = xrut;
IF SQL%NOTFOUND THEN
xok:=1;
end if;
end;
declare
xestado number:=0;
begin
act_cte ('62456789-2', 'Dir 1111', 1234567,xestado);
if xestado = 1 then
dbms_output.put_line('Registro no encontrado');
else
dbms_output.put_line('Registro Actualizado');
-- commit;
end if;
end;
2)
• La Empresa requiere actualizar su lista de precio de alguno de sus producto.
• El nuevo precio debe ser aumentado en un 10% y un 8% dependiente de cierto criterio (Deben ser dos criterios, el primer criterio es si es mayor y el según si es menor o igual)
create or replace
procedure act_precio (xcriterio1 in number,
xcriterio2 in number) as
cursor c_pre is select codproducto, valorunitario from producto
where valorunitario > xcriterio1 or valorunitario <= xcriterio2
for update;
xreg c_pre%rowtype;
begin
open c_pre;
fetch c_pre into xreg;
while c_pre%found loop
if xreg.valorunitario > xcriterio1 then
update producto set valorunitario = valorunitario + (valorunitario * 0.1)
where current of c_pre;
else
update producto set valorunitario = valorunitario + (valorunitario * .08)
where current of c_pre;
end if;
fetch c_pre into xreg;
end loop;
close c_pre;
end;
begin
act_precio (500,500);
end;
3)
• La Empresa requiere eliminar los producto que no existe venta.
• Debe generar un procedimiento almacenado que permita eliminar según requerimiento de la empresa.
create or replace
procedure eli_prod_venta is
cursor c_eli is select codproducto from producto
where codproducto not in
(select codproducto from detalle_factura);
xreg c_eli%rowtype;
begin
open c_eli;
fetch c_eli into xreg;
while
...