Bom dia, estou iniciando na linguagem PL/SQL e estou tentando atualizar os campos
data e o campo e campo motivo, e esta dando violação de chave, alguém pode me ajudar na resolução?
segue abaixo o script feito:
DECLARE
V_REG_PERFIL INTEGER := 0;
CURSOR cDADOS IS
SELECT *
FROM ADMPROD.TBOD_EMPRESA_FATURA E
WHERE CD_PERFIL_CLIENTE = ‘2’
AND EXISTS (SELECT 1
FROM ADMPROD.TBOD_EMPRESA_FATURA EF
WHERE EF.CD_PERFIL_CLIENTE = E.CD_MOTIVO_PERFIL_CLIENTE
AND EF.DT_ALTERACAO = ADMPROD.ULTIMA_DATA_EMPRESA_FATURA(E.CD_EMPRESA)
AND EF.CD_PERFIL_CLIENTE = 2)
AND ROWNUM < 2;
PROCEDURE ATUALIZA_PERFIL_CLIENTE
IS
CD_MOTIVO_PERFIL_CLIENTE ADMPROD.TBOD_EMPRESA_FATURA.CD_MOTIVO_PERFIL_CLIENTE%TYPE;
CD_DT_ALTERACAO ADMPROD.TBOD_EMPRESA_FATURA.DT_ALTERACAO%TYPE;
BEGIN
UPDATE TBOD_EMPRESA_FATURA
SET CD_MOTIVO_PERFIL_CLIENTE ='4',
DT_ALTERACAO = SYSDATE
WHERE CD_PERFIL_CLIENTE ='2';
IF SQL%ROWCOUNT = 0 THEN
DBMS_OUTPUT.PUT_LINE('NAO ENCONTROU REGISTROS PARA PERFIL: ' || V_REG_PERFIL);
END IF;
END;
BEGIN
ATUALIZA_PERFIL_CLIENTE;
END;