我在Postgres数据库中有一列标签,它是一个字符串数组。
我在golang的结构中将其定义为:
type device struct {
deviceID string
macAddress sql.NullString
name sql.NullString
agentID sql.NullString
groupType sql.NullString
tags []string
normalized bool
normalizedName string
normalizedMacAddress string
}
当我像这样对行运行扫描时:
err = rows.Scan(&d.deviceID, &d.name, &d.tags, &d.macAddress, &d.agentID, &d.groupType)
if err != nil {
return nil, err
}
它返回以下错误:
"sql: Scan error on column index 2, name "tags": unsupported Scan...+55 more"
那么,要成为可接受的类型,我需要什么样的包装器?
答案 0 :(得分:3)
扫描阵列时使用pq.Array:
err = rows.Scan(&d.deviceID, &d.name, pq.Array(&d.tags), &d.macAddress, &d.agentID, &d.groupType)
if err != nil {
return nil, err
}