小编Arn*_*rne的帖子

在go中将"SELECT*"列读入[]字符串

我想编写一个Go程序,用于将数据库表中的行转储到csv文件中SELECT *.

Go提供了优秀的sqlcsv 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)

sql csv go

36
推荐指数
2
解决办法
3万
查看次数

标签 统计

csv ×1

go ×1

sql ×1