Boa Noite meu código está apresentando o seguinte erro:
Erro a partir da linha : 59 no comando -
declare
V_SEGMERCADO CLIENTE.segmercardo_id%TYPE := 7;
V_ID cliente.id%type := 1;
begin
loop
V_ID := V_ID + 1;
ALTERA_SEGMERCADO_ID(V_ID,V_SEGMERCADO);
exit when V_ID > 7;
end loop;
end;
Relatório de erros -
ORA-02291: restrição de integridade (SYSTEM.CLIENTE_SEGMERCADO_ID) violada - chave mãe não localizada
ORA-06512: em "SYSTEM.ALTERA_SEGMERCADO_ID", line 8
ORA-06512: em line 7
02291. 00000 - "integrity constraint (%s.%s) violated - parent key not found"
*Cause: A foreign key value has no matching primary key value.
*Action: Delete the foreign key or add a matching primary key.
segue meu código:
create or replace function obter_categoria_cliente
(P_FATURAMENTO CLIENTE.FATURAMENTO_PREVISTO%TYPE)
RETURN CLIENTE.CATEGORIA%TYPE
IS
V_CATEGORIA CLIENTE.CATEGORIA%TYPE;
BEGIN
IF P_FATURAMENTO <= 10000 THEN
V_CATEGORIA := 'BAIXO';
ELSIF P_FATURAMENTO <= 50000 THEN
V_CATEGORIA := 'MEDIO';
ELSIF P_FATURAMENTO <= 100000 THEN
V_CATEGORIA := 'MEDIO ALTO';
ELSE V_CATEGORIA := 'ALTO';
END IF;
return V_CATEGORIA;
END;
CREATE OR REPLACE PROCEDURE INCLUIR_CLIENTE
(P_ID CLIENTE.ID%TYPE,
P_RAZAO CLIENTE.RAZAO_SOCIAL%TYPE,
P_CNPJ CLIENTE.CNPJ%TYPE,
P_SEGMERCADO CLIENTE.segmercardo_id%TYPE,
P_FATURAMENTO CLIENTE.FATURAMENTO_PREVISTO%TYPE
)
IS
V_CATEGORIA CLIENTE.CATEGORIA%TYPE;
V_CNPJ CLIENTE.CNPJ%TYPE;
BEGIN
FORMATA_CNPJ(P_CNPJ,V_CNPJ);
V_CATEGORIA := OBTER_CATEGORIA_CLIENTE(P_FATURAMENTO);
INSERT INTO CLIENTE VALUES(P_ID,P_RAZAO,V_CNPJ,P_SEGMERCADO,SYSDATE,P_FATURAMENTO,V_CATEGORIA);
COMMIT;
END;
EXECUTE incluir_cliente(11,'supermercado tres irmaos','33333333333',1,100456);
create or replace procedure FORMATA_CNPJ
(P_CNPJ in CLIENTE.CNPJ%TYPE,P_CNPJ_SAIDA OUT CLIENTE.CNPJ%TYPE)
IS
BEGIN
P_CNPJ_SAIDA := substr(P_CNPJ,1,3) || '.' || substr(P_CNPJ,4,3) || '.' || substr(P_CNPJ,6,3) || '-' || substr(P_CNPJ,9,2);
END;
create or repLACE procedure ALTERA_SEGMERCADO_ID
(P_ID CLIENTE.ID%TYPE,P_SEGMERCADO_ID CLIENTE.ID%TYPE)
is
begin
UPDATE CLIENTE SET segmercardo_id = P_SEGMERCADO_ID WHERE ID = P_ID;
COMMIT;
end;
SELECT * FROM CLIENTE;
declare
V_SEGMERCADO CLIENTE.segmercardo_id%TYPE := 7;
V_ID cliente.id%type := 1;
begin
loop
V_ID := V_ID + 1;
ALTERA_SEGMERCADO_ID(V_ID,V_SEGMERCADO);
exit when V_ID > 7;
end loop;
end;