4296 - Script Cbds
Problema: Erro em trigger criada a partir de script gerado pelo CBDS:
ODBC SqlState: 22001
Native Error Code: 8152
Error Message: [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated.
Procedure: r134dre_si, Line: 417
O script gerado pelo CBDS apresenta um comando insert com uma quebra de linha no meio do valor de um campo do tipo CHAR(1), como é possível ver abaixo.
O problema aconteceu porque foi gerado script para recriar as triggers da tabela R134DRE via Cbds e foi executado pela ferramenta do banco de dados (SQL Server Management Studio).
Existe uma diferença entre os scripts gerados pelo CBDS em:
1) Ferramentas/Alterar tabelas, selecionar a tabela R134DRE, marcar somente Trigger no grupo Objetos, selecionar o comando Recriar e o destino Gerar Script
2) Ferramentas/Alterar tabelas, selecionar a tabela R134DRE, marcar somente Trigger no grupo Objetos, selecionar o comando Recriar e o destino Executar no banco
A opção 1 acaba gerando uma quebra de linha no meio do valor de um campo do insert.
Vejam a comparação feita pelo Notepad++, por causa da quebra de linha o script é exportado com um espaço seguido de dois caracteres de controle(CR+LF),
Ao tentar executar o comando de inclusão o erro ocorre porque estes três caracteres não cabem no campo IDICON, que tem o tamanho igual a um (1) caractere.
Script exportado(opção Gerar script) e executado na ferramenta do banco de dados:
Documento anexo.
Script gerado e executado no banco via Cbds(opção Executar no banco):
Documento anexo.
Quando ocorre / onde se aplica: Ao exportar script via Cbds.
Solução: Script gerado e executado no banco via Cbds(opção Executar no banco).
Validade: #31/12/2020#
Público: Interno, canais/consultores, clientes
ODBC SqlState: 22001
Native Error Code: 8152
Error Message: [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated.
Procedure: r134dre_si, Line: 417
O script gerado pelo CBDS apresenta um comando insert com uma quebra de linha no meio do valor de um campo do tipo CHAR(1), como é possível ver abaixo.
O problema aconteceu porque foi gerado script para recriar as triggers da tabela R134DRE via Cbds e foi executado pela ferramenta do banco de dados (SQL Server Management Studio).
Existe uma diferença entre os scripts gerados pelo CBDS em:
1) Ferramentas/Alterar tabelas, selecionar a tabela R134DRE, marcar somente Trigger no grupo Objetos, selecionar o comando Recriar e o destino Gerar Script
2) Ferramentas/Alterar tabelas, selecionar a tabela R134DRE, marcar somente Trigger no grupo Objetos, selecionar o comando Recriar e o destino Executar no banco
A opção 1 acaba gerando uma quebra de linha no meio do valor de um campo do insert.
Vejam a comparação feita pelo Notepad++, por causa da quebra de linha o script é exportado com um espaço seguido de dois caracteres de controle(CR+LF),
Ao tentar executar o comando de inclusão o erro ocorre porque estes três caracteres não cabem no campo IDICON, que tem o tamanho igual a um (1) caractere.
Script exportado(opção Gerar script) e executado na ferramenta do banco de dados:
Documento anexo.
Script gerado e executado no banco via Cbds(opção Executar no banco):
Documento anexo.
Quando ocorre / onde se aplica: Ao exportar script via Cbds.
Solução: Script gerado e executado no banco via Cbds(opção Executar no banco).
Validade: #31/12/2020#
Público: Interno, canais/consultores, clientes