ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Cree un procedimiento que utilizando variables de tipo registro muestre todos los datos de los clientes


Enviado por   •  19 de Noviembre de 2015  •  Prácticas o problemas  •  285 Palabras (2 Páginas)  •  206 Visitas

Página 1 de 2

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.

...

Descargar como (para miembros actualizados)  txt (2.6 Kb)   pdf (33 Kb)   docx (10.4 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com