none
ERROR CONVERTING DATA TYPE VARCHAR TO NUMERIC. RRS feed

  • Pergunta

  • Boa tarde.

    Tenho instalado o SQL Server 2008 R2 em português (language) e estou com problema para realizar o INSERT (via aplicação) em uma determinada tabela com DATA. Segue abaixo a estrutura da tabela e o erro durante a execução:

    tabela

    - empresa char(02) not null

    - lista decimal(4,0) not null

    - tip_lista char(01) not null

    - descricao char(15) 

    - data_inicio datetime not null

    - data_fim datetime not null

    - indicador 1 char(01) not null

    - indicador 2 char(01) not null

    - indicador 3 char(01)

    - cod_moeda decimal(4,0)

    NATIVE ERROR:  8114 - [MICROSOFT][ODBC SQL SERVER DRIVER][SQL SERVER]ERROR CONVERTING DATA TYPE VARCHAR TO NUMERIC.  NAME_FGL:VAR_INSERT
    COMMAND: INSERT INTO tabela VALUES ('01',1,'E','PADRAO','20140101','20141231','N','N','N','')

    Já tentei com diversos formatos de data, mas sem sucesso. Ao tentar com '2014-01-01', apareceu o erro 242 (também de conversão).

    OBS.: Via Banco de Dados, não ocorre o erro no INSERT.

    O que posso fazer? Pode ser configuração? Compilador?

    segunda-feira, 28 de julho de 2014 21:06

Respostas

  • Boa tarde,

    Desconfio que o problema está no valor fornecido para a coluna cod_moeda, já que a mesma é do tipo decimal e o valor fornecido é uma string vazia.

    Experimente uma das formas abaixo:

    INSERT INTO tabela VALUES ('01', 1, 'E', 'PADRAO', '20140101', '20141231', 'N', 'N', 'N', 0)
    

    ou

    INSERT INTO tabela VALUES ('01', 1, 'E', 'PADRAO', '20140101', '20141231', 'N', 'N', 'N', null)
    

    ou

    INSERT INTO tabela VALUES ('01', 1, 'E', 'PADRAO', '20140101', '20141231', 'N', 'N', 'N')
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 28 de julho de 2014 21:19

Todas as Respostas

  • Boa tarde,

    Desconfio que o problema está no valor fornecido para a coluna cod_moeda, já que a mesma é do tipo decimal e o valor fornecido é uma string vazia.

    Experimente uma das formas abaixo:

    INSERT INTO tabela VALUES ('01', 1, 'E', 'PADRAO', '20140101', '20141231', 'N', 'N', 'N', 0)
    

    ou

    INSERT INTO tabela VALUES ('01', 1, 'E', 'PADRAO', '20140101', '20141231', 'N', 'N', 'N', null)
    

    ou

    INSERT INTO tabela VALUES ('01', 1, 'E', 'PADRAO', '20140101', '20141231', 'N', 'N', 'N')
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 28 de julho de 2014 21:19
  • tbm vi isso. e outra coisa q tbm vc pode tentar

    string sql = "INSERT INTO Aluno(nome, endereco, numero, RG) VALUES (@nome, @endereco, @numero, @RG)";

    vc nao informou os campos que teriam inserçao

    • Sugerido como Resposta godinis22 segunda-feira, 28 de julho de 2014 22:16
    • Não Sugerido como Resposta godinis22 segunda-feira, 28 de julho de 2014 22:17
    segunda-feira, 28 de julho de 2014 21:22
  • Era isso mesmo, como trabalho com outros bancos, eles aceitam '' como sendo nulo, porém o SQL Server ocorre este erro.

    Muito obrigado!

    segunda-feira, 28 de julho de 2014 21:44