Cree un procedimiento que utilizando variables de tipo registro muestre todos los datos de los clientes
Enviado por angel1032 • 19 de Noviembre de 2015 • Práctica o problema • 285 Palabras (2 Páginas) • 231 Visitas
2- Cree un procedimiento que utilizando variables de tipo registro muestre todos los datos de los clientes.
CURSOR c_cliente IS
SELECT * FROM CLIENTE
BEGIN
FOR v_cliente IN c_cliente
LOOP
Dbms_output.put_line(v_cliente.NOMBRE || ‘ ‘ || v_cliente.DIRECCION || ‘ ‘ || v_cliente.TELEFONO ‘ ‘ || v_cliente.ACTIVO);
END LOOP;
CLOSE c_cliente;
END;
3- A) Cree otro procedimiento que sólo muestre aquellos clientes activos.
CURSOR c_cliente IS
SELECT * FROM CLIENTE
BEGIN
FOR v_cliente IN c_cliente LOOP
IF v_cliente.ACTIVO = ‘VERDADERO’ THEN
Dbms_output.put_line(v_cliente.NOMBRE || ‘ ‘ || v_cliente.DIRECCION || ‘ ‘ || v_cliente.TELEFONO || ‘ ‘ || v_cliente.ACTIVO);
END IF
END LOOP;
CLOSE c_cliente;
END;
3- B) ¿Se podría utilizar en algún punto el atributo %TYPE? En caso afirmativo transforme el procedimiento para utilizarlo
CURSOR c_cliente IS
SELECT * FROM CLIENTE
Constante CONSTANT CLIENTE.ACTIVO%TYPE := ‘VERDADERO’;
BEGIN
FOR v_cliente IN c_cliente LOOP
IF v_cliente.ACTIVO = Constante THEN
Dbms_output.put_line(v_cliente.NOMBRE || ‘ ‘ || v_cliente.DIRECCION || ‘ ‘ || v_cliente.TELEFONO || ‘ ‘ || v_cliente.ACTIVO);
END IF
END LOOP;
CLOSE c_cliente;
END;
4- Cree otro procedimiento que pida los datos de usuario necesarios para insertar un cliente nuevo.
DECLARE
NOM CLIENTE.NOMBRE%TYPE := ‘&NOMBRE’;
DIR CLIENTE.DIRECCION%TYPE := ‘&DIRECCION’;
TLF CLIENTE.TELEFONO%TYPE := ‘&TELEFONO’;
ACT CLIENTE.ACTIVO%TYPE := ‘&ACTIVO’;
BEGIN
INSERT INTO CLIENTE (NOMBRE,DIRECCION,TELEFONO,ACTIVO) VALUES (NOM,DIR,TLF,ACT);
END;
5- Crear un procedimiento para que a la columna teléfono, de la tabla creada anteriormente, separe cada tres cifras con un guión (ej. 957585586 por 957-585-586).
CREATE O REMPLACE PROCEDURE modificar_telefono IS
CURSOR c_telefono IS
SELECT NOMBRE, DIRECCION, TELEFONO, ACTIVO FROM CLIENTE
FOR UPDATE
BEGIN
FOR v_cliente IN c_telefono
LOOP
IF (INSTR (c_telefono, ‘-‘) = 0) THEN
UPDATE c_telefono SET TELEFONO = (substr(c_telefono,1,3) || ‘-‘ || substr(c_telefono,4,3) || ‘-‘ || substr(c_telefono,7,3) )
WHERE CURRENT OF c_telefono;
END IF;
END LOOP;
CLOSE c_telefono;
END;
3- Cree un procedimiento que utilizando variables de tipo registro muestre todos los datos de los clientes.
...