GoLang Copy命令准备语句不起作用

时间:2016-11-06 07:08:20

标签: go amazon-redshift

我正在编写一个简单的基于Golang的Redshift DataLoader。我必须使用Redshift Copy From S3命令作为Prepared语句,以便我可以将凭据作为参数的一部分传递。

我看到lib / pq没有正确解析SQL模板。任何想法将不胜感激

    COPY_FROM_S3 = `
    COPY {{.stageTable}}
    FROM $1
    WITH CREDENTIALS AS $2
    DELIMITER $3
    IGNOREBLANKLINES ACCEPTINVCHARS BLANKSASNULL
    EMPTYASNULL ACCEPTANYDATE ESCAPE MAXERROR 50
    STATUPDATE ON
`
  stmt , _ := redshiftDB.Prepare(COPY_FROM_S3)
  stmt.Exec(s3File, awsCreds, delimter)

获取语法错误

panic: pq: syntax error at or near "$1"

goroutine 1 [running]:

1 个答案:

答案 0 :(得分:0)

lib / pq确实正确地解析了它,问题是你正在创建一个无效的查询模板,首先:{{.stageTable}}用于正式templates,第二个:美元( $ 1 )表示法不适用于 FROM 语句中的表名,不确定其他** $ **是否有效