go
type_error
ai_generated
true
sql: 第 0 列扫描错误:将驱动值类型 []uint8("abc")转换为 int64:语法无效
sql: Scan error on column index 0: converting driver.Value type []uint8 ("abc") to a int64: invalid syntax
ID: go/database-sql-rows-scan-error
80%修复率
88%置信度
0证据数
2025-05-10首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.20 | active | — | — | — |
根因分析
数据库返回的值无法转换为目标 Go 类型,例如字符串转整数。
English
The database returned a value that cannot be converted to the target Go type, such as a string to int.
解决方案
-
70% 成功率
var val int64; if err := rows.Scan(&val); err != nil { return err }; // handle type mismatch -
90% 成功率
Use sql.NullInt64 to handle NULL values
无效尝试
常见但无效的做法:
-
80% 失败
Data is incorrect, leading to logic errors
-
50% 失败
May not match the actual data type