Codice: Seleziona tutto
<<blocco_esterno>>
DECLARE
contatore NUMBER := 0;
manager NUMBER := &id_manager_corrente;
BEGIN
SELECT COUNT(*)
INTO contatore
FROM area
WHERE id_manager = blocco_esterno.manager;
IF contatore > 0 THEN
<<blocco_interno>>
DECLARE
nome_area VARCHAR2(64);
manager NUMBER := &id_manager_new;
BEGIN
SELECT nome
INTO nome_area
FROM area
WHERE id_manager = blocco_esterno.manager;
DBMS_OUTPUT.PUT_LINE('A questo manager e associata l area: ' || nome_area);
UPDATE AREA
SET ID_MANAGER = blocco_interno.manager
WHERE ID_MANAGER = blocco_esterno.manager;
commit;
DBMS_OUTPUT.PUT_LINE('Questa area adesso ha un nuovo manager ID#' || blocco_interno.manager);
END blocco_interno;
ELSE
DBMS_OUTPUT.PUT_LINE('Non ci sono aree associate a questo manager');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Non ci sono aree associate a questo manager');
END blocco_esterno;
Codice: Seleziona tutto
SET ID_MANAGER = blocco_interno.manager
WHERE ID_MANAGER = blocco_esterno.manager;