Database Programming With PL/SQL 7-4: Practice Activities
Database Programming With PL/SQL 7-4: Practice Activities
com/academy
Try It / Solve It
1. Enter and run the following code twice, once for each of the two country_ids, 5
(which does not exist) and 672 (Antarctica, which does exist but has no currency).
El id 5, aparece el mensaje de que no existe el país y con el id 672 se muestra un mensaje de que el país existe
pero la moneda no.
B. Modify the code to move the two exception handlers to the outer block. Leave the
declaration of e_no_currency in the inner block. Execute twice, again using
country_ids 5 and 672. Now what happens and why? Save your code.
DECLARE
v_pais_nom
countries.country_name%TYPE;
v_currency
countries.currency_code%TYPE;
BEGIN
DECLARE
e_no_currency EXCEPTION;
BEGIN
SELECT country_name, currency_code
INTO v_pais_nom, v_currency
FROM countries
WHERE country_id = 5;
IF v_currency = 'NONE' THEN
RAISE e_no_currency;
END IF; END;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘el pais no existe’ );
WHEN e_no_currency THEN
DBMS_OUTPUT.PUT_LINE(‘Este país existe pero no tiene moneda’);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘otro tipo de error ocurrio’);
END;
C. Modify the code again to move the declaration of e_no_currency to the outer block.
Execute the code again using country_ids 5 and 672. Now what happens and why?
DECLARE v_pais_nom
countries.country_name%TYPE;
v_currency
countries.currency_code%TYPE;
e_no_currency EXCEPTION;
BEGIN
SELECT country_name, currency_code
INTO v_pais_nom, v_currency
FROM countries
WHERE country_id = 5;
IF v_currency = 'NONE' THEN
RAISE e_no_currency;
END IF; END;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘el pais no existe’ );
WHEN e_no_currency THEN
DBMS_OUTPUT.PUT_LINE(‘Este país existe pero no tiene moneda’);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘otro tipo de error ocurrio’);
END;