Base de Conhecimento

Framework - Linha Datasul - TEC - Erro Unique Constraint Violated em Dataserver Oracle

time.png Tempo aproximado para leitura: 00:02:36 min

Ocorrência
O erro restrição exclusiva (SRCADGER.SRG09448##REC) violada ou unique constraint (SRCADGER.SRG09448##REC) violated é exibido durante execução de rotina.

Ambiente
Framework - Framework (Linha Datasul) - Oracle - Todas as versões

Causa
A mensagem de erro indica a tentativa de gravação de um valor duplicado em um índice que permite somente valores únicos.

Solução
A solução deste problema passa pela análise do objeto que apresenta o erro. O sufixo ##REC no nome do índice indica que trata-se de um índice criado e mantido pelo Dataserver Oracle.

Observe abaixo o DDL de criação deste índice em uma das situações recebidas em nosso suporte:

CREATE UNIQUE INDEX SRG09448##REC ON DOCTO_GERAL (progress_recid);

O índice é formado apenas pelo campo PROGRESS_RECID, o qual é utilizado para manter a compatibilidade com a função RECID nos bancos Openedge. Mais informações sobre este campo podem ser encontradas ao final deste artigo. Especificamente para índices com sufixo ##REC a correção pode ser realizada de forma simples, buscando o valor da sequência NOME_DA_TABELA_SEQ e atribuindo ao campo PROGRESS_RECID para cada um dos registros dela.

Abaixo o exemplo para correção do erro apresentado ao início deste artigo:

update DOCTO_GERAL set PROGRESS_RECID = DOCTO_GERAL_SEQ.nextval;
commit;


Esta mesma solução pode ser aplicada a qualquer outra tabela, seguindo este modelo:

update TABELA set PROGRESS_RECID = TABELA_SEQ.nextval;
commit;


A execução deste comando geralmente é rápida, mas pode demorar mais do que o esperado em tabelas com uma grande quantidade de registros. Realize o teste em um ambiente de testes atualizado com os dados de produção para saber o tempo aproximado desta manutenção em ambiente de produção.
Terminada a execução do comando, realize novo teste com a rotina que apresenta o problema.

Importante
Esta solução se adequa apenas para índices com o sufixo ##REC. Os demais índices devem ser analisados pelas áreas responsáveis pelo objeto, visto que cada índice possuirá campos diferentes e poderá ser alimentado por outras sequências.

Saiba mais
Informações adicionais em Framework - Linha Datasul - TEC - Coluna PROGRESS_RECID em ambientes com OpenEdge Dataserver

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _