0% found this document useful (0 votes)
2 views4 pages

Codigos Error

The document contains multiple PL/SQL code blocks that demonstrate error handling and data retrieval from an EMPLOYEES table. It includes various exceptions such as INVALID_NUMBER, VALUE_ERROR, NO_DATA_FOUND, ZERO_DIVIDE, TOO_MANY_ROWS, and DUP_VAL_ON_INDEX. Each block showcases different scenarios of fetching employee data and handling potential errors during execution.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views4 pages

Codigos Error

The document contains multiple PL/SQL code blocks that demonstrate error handling and data retrieval from an EMPLOYEES table. It includes various exceptions such as INVALID_NUMBER, VALUE_ERROR, NO_DATA_FOUND, ZERO_DIVIDE, TOO_MANY_ROWS, and DUP_VAL_ON_INDEX. Each block showcases different scenarios of fetching employee data and handling potential errors during execution.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

SET SERVEROUTPUT ON;

DECLARE
V_NOMBRE VARCHAR2 (20);
V_SALARIO NUMBER;
BEGIN
SELECT FIRST_NAME,SALARY
INTO V_NOMBRE, V_SALARIO
FROM EMPLOYEES WHERE EMPLOYEE_ID = 'P';
EXCEPTION
WHEN INVALID_NUMBER THEN
DBMS_OUTPUT.PUT_LINE('EL VALOR ES INCORRECTO');
END;

-----------------------------------------------------
SET SERVEROUTPUT ON;

DECLARE
V_NOMBRE VARCHAR(1);
BEGIN
FOR I IN 1 .. 206 LOOP
BEGIN
SELECT FIRST_NAME
INTO V_NOMBRE
FROM EMPLOYEES WHERE EMPLOYEE_ID = I;
DBMS_OUTPUT.PUT_LINE(V_NOMBRE);

EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE('LA EXTENCION ES PEQUEÑA');
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO ENCONTRADO');
END;
END LOOP;
END;
--------------------------------------------------------
SET SERVEROUTPUT ON;
DECLARE
V_NOMBRE EMPLOYEES.FIRST_NAME%TYPE;
CURSOR NO_HAY_IDEPARTAMENTO IS
SELECT DEPARTMENT_ID
FROM EMPLOYEES A
WHERE NOT EXISTS (SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE
DEPARTMENT_ID = A.DEPARTMENT_ID);
BEGIN

LOOP
OPEN NO_HAY_IDEPARTAMENTO;

FETCH NO_HAY_IDEPARTAMENTO INTO V_NOMBRE;


EXIT WHEN NO_HAY_IDEPARTAMENTO%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(V_NOMBRE);

END LOOP;
CLOSE NO_HAY_IDEPARTAMENTO;

EXCEPTION
WHEN CURSOR_ALREADY_OPEN THEN
DBMS_OUTPUT.PUT_LINE('CURSOR NO ABIERTO');

END;
---------------------------------------------------------
DECLARE
V_NUMERO NUMBER;
BEGIN
FOR I IN 1 .. 206 LOOP

SELECT DEPARTMENT_ID
INTO V_NUMERO
FROM EMPLOYEES WHERE EMPLOYEE_ID = I;

DBMS_OUTPUT.PUT_LINE(V_NUMERO);

END LOOP;

EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO ENCONTRADOS');
END;
-----------------------------------------------------------
SET SERVEROUTPUT ON;
DECLARE
V_NOMBRE NUMBER;
BEGIN
SELECT 1/0
INTO V_NOMBRE
FROM EMPLOYEES;

DBMS_OUTPUT.PUT_LINE(V_NOMBRE);
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('NO SE PUEDE DIVIDIR ENTRE ZERO');
END;
--------------------------------------------------------------
SET SERVEROUTPUT ON;
DECLARE
V_NOMBRE VARCHAR(30);
BEGIN

SELECT FIRST_NAME
INTO V_NOMBRE
FROM EMPLOYEES;

DBMS_OUTPUT.put_line(V_NOMBRE);

EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('MUCHAS FILAS');
END;
---------------------------------------------------------------
SET SERVEROUTPUT ON;
DECLARE
V_NOMBRE EMPLOYEES.FIRST_NAME%TYPE;
CURSOR NO_HAY_IDEPARTAMENTO IS
SELECT DEPARTMENT_ID
FROM EMPLOYEES A
WHERE NOT EXISTS (SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE
DEPARTMENT_ID = A.DEPARTMENT_ID);

BEGIN

OPEN NO_HAY_IDEPARTAMENTO;

LOOP
FETCH NO_HAY_IDEPARTAMENTO INTO V_NOMBRE;
EXIT WHEN NO_HAY_IDEPARTAMENTO%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(V_NOMBRE);

CLOSE NO_HAY_IDEPARTAMENTO;
END LOOP;

EXCEPTION
WHEN INVALID_CURSOR THEN
DBMS_OUTPUT.PUT_LINE('CURSOR INVALIDO');

END;
--------------------------------------------------------------
DECLARE
V_DEPARTAMENTO NUMBER;

BEGIN
INSERT INTO TABLA_DE_RESULTADO
(SELECT DEPARTMENT_ID FROM EMPLOYEES);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
NULL;
END;

You might also like