【发布时间】:2015-08-09 22:25:39
【问题描述】:
我有一个查询,它返回一行,其中包含一个字符串数组 (character varying[]):
{http://wp.me/p62MJv-Jc,http://tyrant.click/1LGBoD6}
是否有任何简单的方法可以将其直接读入 Golang 切片?例如
var arr []string
for rows.Next() {
rows.Scan(&arr)
fmt.Println(len(arr))
}
生产:
0
【问题讨论】:
-
您使用的是哪个 PostgreSQL 数据库驱动程序?您是否阅读了它的文档(驱动程序会提供这样的功能)?如果做不到这一点,您可能只需要创建一个实现
sql.Scanner的切片类型。 -
使用godoc.org/github.com/lib/pq 好的,谢谢 我会调查一下,有点失望这不是开箱即用的
-
顺便说一句,您甚至不应该在不检查
Scan的错误返回的情况下查看len(arr)(可能类似于:“reflect.Set: value of type []uint8 is不可分配给类型 []string",即数据库驱动程序将列作为[]byte)。 -
快速搜索issues for that package 出现:Support Postgresql array types #49 和Array Support #327。您可以评论或跟踪其中之一。
-
检查这个opsdash.com/blog/postgres-arrays-golang.html,按照本教程我能够克服切片(go)和数组(postgres)之间的映射
标签: postgresql go