使用 Golang 和内置database/sql库以及 postgreslib/pq库,我试图从某些记录中具有一些空值的数据库中读取数据。代码可以编译,但是当我尝试运行它时,出现以下错误。
sql: Scan error on column index 38: destination not a pointer
这是我的代码:
rows, err := db.Query(`SELECT * FROM observations WHERE profile_id=$1 AND year=$2 AND month=$3`, id, date.Year(), int(date.Month()))
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id sql.NullInt64
var year sql.NullInt64
var month sql.NullInt64
var day_of_week sql.NullInt64
var hour sql.NullInt64
var profile_id sql.NullInt64
var created_at time.Time
var updated_at time.Time
var banking sql.NullFloat64
var hlt_pro sql.NullFloat64
var sup_shp sql.NullFloat64
var aff_con sql.NullFloat64
var biz_trv sql.NullFloat64
var investing sql.NullFloat64
var day_com sql.NullFloat64
var unique_emin sql.NullFloat64
var no_group sql.NullFloat64
var movie_goer sql.NullFloat64
var luxury_shopper sql.NullFloat64
var sports_fan sql.NullFloat64
var aland sql.NullInt64
var awater sql.NullInt64
var tractce sql.NullString
var geoid sql.NullString
var median_income sql.NullInt64
var total_population sql.NullInt64
var white sql.NullInt64
var black sql.NullInt64
var native_american sql.NullInt64
var asian sql.NullInt64
var pacific_islander sql.NullInt64
var other sql.NullInt64
var two_plus sql.NullInt64
var two_plus_question sql.NullInt64
var confused sql.NullInt64
var median_age sql.NullFloat64
var count sql.NullFloat64
var latitude sql.NullString
var longitude sql.NullString
我正在使用sql.NullType,这与执行相同*type。这是处理空情况的一种努力,它似乎适用于大多数列,但我不确定为什么它说“目标不是指针”。另外,我不知道哪个变量是问题所在。有任何想法吗?
莫回无
相关分类