8114: Error converting data type X to Y
SQL ServerO que significa?
Um valor não pôde ser convertido de um tipo de dado para outro porque os tipos são incompatíveis. Diferentemente do erro 245, geralmente trata-se de uma conversão de tipo que falhou no nível de parâmetro/expressão (por exemplo, varchar para numeric).
Por que acontece?
Enviar texto não numérico ou malformado para uma coluna/parâmetro numérico; estouro de escala/precisão; tentar converter uma string vazia ('') para numeric; ou passar um argumento de tipo errado em uma consulta parametrizada. Comum com conversões implícitas geradas por ORMs.
Como resolver
Verifique se os valores convertidos cabem no tipo de destino. Use TRY_CONVERT / TRY_CAST para conversão segura; eles retornam NULL em caso de falha, então você pode filtrar essas linhas com WHERE. Faça os tipos dos parâmetros corresponderem aos tipos das colunas. Varra os dados com ISNUMERIC/TRY_CAST para encontrar as linhas problemáticas e limpe as strings vazias.
Mais entradas deste banco
- 40544The database has reached its size quota (Azure SQL) (o banco atingiu sua cota de tamanho)
- 40613Database is not currently available (Azure SQL) (o banco não está disponível no momento)
- 102Incorrect syntax near 'token'
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (a instância do SQL Server Database Engine não consegue obter um recurso LOCK)
- 3906Failed to update database because the database is read-only (não foi possível atualizar o banco porque ele é somente leitura)
- 15023User already exists in the current database (o usuário já existe no banco atual)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (falha no login; o login vem de um domínio não confiável e não pode ser usado com autenticação do Windows)