PROCEDURE sp_inicia_fluxo(p_flu_via_codigo number)
AS
v_km_inicial number(10);
BEGIN
SELECT b.vei_km INTO v_km_inicial
FROM viagem a,
veiculo b
WHERE a.via_vei_codigo = b.vei_codigo
AND a.via_codigo = p_flu_via_codigo;
INSERT INTO fluxo
VALUES (seq_fluxo.nextval,p_flu_via_codigo,sysdate,null,v_km_inicial,null,'A');
END;
Eu não posso jogar v_km_inicial como insert na tabela?
valeu
ORA-02291: restrição de integridade (CAIOAMANTE.SYS_C004108) violada - chave mãe não localizada
ORA-06512: em "CAIOAMANTE.SP_INICIA_FLUXO", line 12
ORA-06512: em line 2
Sua tabela FLUXO referencia uma outra tabela através de uma foreign key, e o registro que você apontou lá na outra tabela não existe. Ou crie o registro lá na outra ou mude os dados para um registro que exista lá.
Roda o select abaixo para ver a FK que está dando erro para você r (CAIOAMANTE.SYS_C004108) e qual tabela e colunas.
select c2.owner, c2.constraint_name, c2.table_name, cc.*
from all_constraints c
join all_constraints c2 on c.r_owner = c2.owner and c.r_constraint_name = c2.constraint_name
join all_cons_columns cc on cc.owner = c2.owner and cc.constraint_name = c2.constraint_name
where c.constraint_type = 'R' and c.table_name = 'FLUXO'
Só para esclarecer, o erro é no comando de insert, e você vai ter que corrigir os values que estão sendo inseridos ou incluir linhas novas na tabela que a fluxos referencia.