Criação de script, o mesmo dando pau => "ORA-02291&

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
guinet
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Dom, 30 Jul 2006 10:14 pm
Localização: São Paulo

Fala galera estou com o seguinte problema abaixo:


ORA-02291: restrição de integridade (AD_AGENCY.AGPA_PASI_FK) violada - chave-pai não localizada
ORA-06512: em line 15



Quando rodo o sccript abaixo da esse pau... oque poderia ser amigos?

o script é o seguinte:

Selecionar tudo

DECLARE 
 
BEGIN 

INSERT INTO PARAMETROS_SISTEMA VALUES(
		   						   		  (SELECT MAX(ID) FROM PARAMETROS_SISTEMA)+1,
										  3,
										  'CTRL_MAX_BUSAVA','CONTROLAR NÚMERO MÁXIMO DE REGISTROS DE BUSCAS AVANÇADAS',
										  5,
										  '1',
										  NULL,
										  NULL
									  );  
									  
INSERT INTO AGENCIA_PARAMETROS VALUES(
	   						   		   	 (SELECT MAX(ID) FROM AGENCIA_PARAMETROS)+1,
										  1,
										 (SELECT MAX(ID) FROM PARAMETROS_SISTEMA)+1,
										  '1' 
									  );

  COMMIT WORK; 

END;
/
[/i]
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5026
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Simples. Na tabela AGENCIA_PARAMETROS existe uma constraint chamada AD_AGENCY.AGPA_PASI_FK. (Verifique de qual campo é essa constraint). Você está inserindo um valor nessa coluna que não existe na tabela relacionada.

Aí vai uma dica:
* Coloque os campo na hora de fazer os INSERTS pois você evita muitos problemas futuros. (além de ser mais fácil de entender o insert)
Faça assim:

Selecionar tudo

INSERT INTO TABELA
(CAMPO1
,CAMPO2
,CAMPO3
)
VALUES
(etc
,etc
,etc
)
guinet
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Dom, 30 Jul 2006 10:14 pm
Localização: São Paulo

dr_gori,

Firmezaum trutão resolveu o problema!. Era isso mesmo.
Responder
  • Informação