Ajuda com exercício - cursores e procedures

Oracle

19/08/2015

Boa noite a todos.

Bom, agora tenho uma lista de exercícios de PL/SQL para fazer, e para variar, preciso de ajuda.

Bom, o exercício pede: Utilizando cursores, crie um procedimento que atualize o salário dos funcionários quando passado seu código e o percentual de aumento (se diretoria 20% e se segundo escalão 10%);

Meu código ficou assim:
SET SERVEROUTPUT ON
ACCEPT V_CODFUNC PROMPT 'CODIGO DO FUNCIONARIO'
DECLARE
  CURSOR CUR_EX5
  IS
    SELECT CAR_CODIGO FROM tb_cargo;
  V_CARGO tb_cargo%ROWTYPE;
BEGIN
  OPEN CUR_EX5;
  LOOP
    FETCH CUR_EX5 INTO V_CARGO;
    DBMS_OUTPUT.PUT_LINE(V_CARGO.CAR_DESCRICAO);
    
    CASE WHEN UPPER(V_CARGO.car_descricao) LIKE '%DIRETORIA%'  THEN
      UPDATE tb_cargo
      SET car_salariobase = V_CARGO.car_salariobase + (V_CARGO.car_salariobase * 0.2) WHERE CAR_CODIGO =V_CODFUNC;
      DBMS_OUTPUT.PUT_LINE(V_CARGO.car_salariobase);
      
      ELSE
        UPDATE tb_cargo
        SET car_salariobase = V_CARGO.car_salariobase + (V_CARGO.car_salariobase * 0.1) WHERE CAR_CODIGO =V_CODFUNC;
        DBMS_OUTPUT.PUT_LINE(V_CARGO.car_salariobase);
      END CASE;
    
    EXIT
    WHEN CUR_EX5%NOTFOUND;
     END LOOP;
  END;

Está dando que o identificado V_CODFUNC é inválido (mesmo eu digitando um código de funcionário existente), daí acaba que não faz nada.
Alguém sabe onde está o erro? Acho que a lógica está certa né?
Valeu, abraço!
Paulo Quadros

Paulo Quadros

Curtidas 0

Respostas

Paulo Quadros

Paulo Quadros

19/08/2015

E tenho outro exercício aqui que estou com dificuldade.
Tenho uma tabela de clientes, e uma de funcionários, e tenho que fazer uma função (já tenho ela, peguei pronta) que valide o CPF. Mas como eu aplico essa função para avaliar o CPF de cada funcionário e de cada cliente?
Obrigado novamente!
GOSTEI 0
POSTAR