Tempo aproximado para leitura: 00:01:20 min
Ocorrência
No módulo Controle Manutenção Industrial - MI, ao tentar salvar o tempo de inatividade é apresentada a ocorrência Erro de Banco de Dados: ORA-0000: unique constraint (PIMS_MI_PK_MCPMOINAT) violated.
Ambiente
TOTVS Agro – TOTVS Agro – Bioenergia – Controle Manutenção Industrial - MI – Versão 12
Causa
Esse incidente ocorre, pois quando não é eliminada a sequência da tabela, fazendo com que a mesma inicie com um valor alto no Sistema, é apresentado um erro no Banco de Dados.
Solução
Para solucionar essa ocorrência, realize os seguintes passos:
1. Realize o Script, pois ele vai zerar e reordenar a PK para que a sequencia seja iniciada corretamente;
2. Execute os comandos. Eles serão executados linha por linha;
create table mcpmoinat_bck as select * from mcpmoinat;
alter table mcpmoinat drop constraint pk_mcpmoinat;
drop index pk_mcpmoinat;
alter table mcpmoinat add id_moinat_bck number(12);
update mcpmoinat set id_moinat_bck = id_moinat;
update mcpmoinat set id_moinat = 0;
delete sequencia where upper(seq_tabela) = 'MCPMOINAT';
commit;
create or replace procedure updateid_moinat as
cursor cm is
select id_moinat_bck
from mcpmoinat
order by id_moinat_bck;
rcm cm%rowtype;
begin
open cm;
loop
fetch cm into rcm;
exit when cm%notfound;
update mcpmoinat
set id_moinat = fnovasequencia('MCPMOINAT','ID_MOINAT')
where id_moinat_bck = rcm.id_moinat_bck;
end loop;
close cm;
commit;
end updateid_moinat;
-- Aguardar a execução da procedure
call updateid_moinat();
--Após a execução da procedure executar
alter table mcpmoinat add constraint pk_mcpmoinat primary key(id_moinat);
alter table mcpmoinat drop column id_moinat_bck;
drop procedure updateid_moinat;
0 Comentários