我想编写一个Go程序,用于将数据库表中的行转储到csv文件中SELECT *.
Go提供了优秀的sql和csv apis,但是csv期望字符串数组和"填充"字段中的Scan方法Rows根据它们的类型.由于我之前不知道这张表,我不知道有多少列以及它们的类型.
这是我在Go的第一个项目,所以我有点挣扎.
我如何最好地将Rows实例中的列读入[]string- 并且是"正确"的方式?
谢谢!
UPDATE
我仍然在努力参与这些参数.这是我的代码,现在我正在使用panic而不是返回error,但我稍后会改变它.在我的测试中,我传递了查询结果和os.Stdout.
func dumpTable(rows *sql.Rows, out io.Writer) error {
colNames, err := rows.Columns()
if err != nil {
panic(err)
}
if rows.Next() {
writer := csv.NewWriter(out)
writer.Comma = '\t'
cols := make([]string, len(colNames))
processRow := func() {
err := rows.Scan(cols...)
if err != nil {
panic(err)
}
writer.Write(cols)
}
processRow()
for …Run Code Online (Sandbox Code Playgroud)