9714 - Chave Duplicada pesquisar registros Empregado/Terceiro/Parceiro
Problema: No cadastro dos colaboradores tipo Terceiro, Parceiro ou Empregado, ao realizar a pesquisa, é apresentada a mensagem Não é possível inserir um registro com chave duplicada, conforme anexo.
Quando ocorre / onde se aplica: Ao realizar a pesquisa dos registros habilitando a opção de Procura Incremental.
Solução: A tabela R999PSF contém registros órfãos, ou seja, não tem registros pais na tabela R999PSQ correspondentes ao registro na tabela R999PSF.
Pode ser feito um select que retorne a quantidade de registros órfãos que existem na tabela R999PSF. Trará um determinado número de registros. Isso ocorre quando são deletados registros da R999PSQ e não são deletados os registros correspondentes na R999PSF.
Para resolver essa questão, deve-se fazer o seguinte:
- Por segurança, é recomendado fazer um backup das tabelas R999PSF e R999PSQ antes de executar este comando, para o caso de algum erro ocorrer.
- Executar o seguinte comando no editor SQL do CBDS:
delete * from r999psf f where not exists
(select 1 from r999psq q where q.nompsq = f.nompsq and q.codusu = f.codusu and q.srcfrm = f.srcfrm)
A situação ainda pode estar relacionada também à linguagem do client do Oracle (quando for uma estação).
Acessar o regedit do windows e alterar a propriedade NLS_LANG do oracle para: BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
Como esta é uma configuração avançada do banco, recomenda-se que seja acompanhada pelo DBA.
A chave a ser alterada está em: HKEI_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ORACLE (quando for 64 bits) ou em: HKEI_LOCAL_MACHINE/SOFTWARE/ORACLE (quando for 32 bits)
Quando ocorre / onde se aplica: Ao realizar a pesquisa dos registros habilitando a opção de Procura Incremental.
Solução: A tabela R999PSF contém registros órfãos, ou seja, não tem registros pais na tabela R999PSQ correspondentes ao registro na tabela R999PSF.
Pode ser feito um select que retorne a quantidade de registros órfãos que existem na tabela R999PSF. Trará um determinado número de registros. Isso ocorre quando são deletados registros da R999PSQ e não são deletados os registros correspondentes na R999PSF.
Para resolver essa questão, deve-se fazer o seguinte:
- Por segurança, é recomendado fazer um backup das tabelas R999PSF e R999PSQ antes de executar este comando, para o caso de algum erro ocorrer.
- Executar o seguinte comando no editor SQL do CBDS:
delete * from r999psf f where not exists
(select 1 from r999psq q where q.nompsq = f.nompsq and q.codusu = f.codusu and q.srcfrm = f.srcfrm)
A situação ainda pode estar relacionada também à linguagem do client do Oracle (quando for uma estação).
Acessar o regedit do windows e alterar a propriedade NLS_LANG do oracle para: BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
Como esta é uma configuração avançada do banco, recomenda-se que seja acompanhada pelo DBA.
A chave a ser alterada está em: HKEI_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ORACLE (quando for 64 bits) ou em: HKEI_LOCAL_MACHINE/SOFTWARE/ORACLE (quando for 32 bits)