Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
golang sql.Tx Exec带单引号-语句需要0个参数_Go - Fatal编程技术网

golang sql.Tx Exec带单引号-语句需要0个参数

golang sql.Tx Exec带单引号-语句需要0个参数,go,Go,我正在使用pq,我有一个如下功能: func UpdateTable(tx *sql.Tx) error { _, err := tx.Exec(` copy public.mytable FROM 's3://mybucket/mytable' credentials 'aws_access_key_id=$1;aws_secret_access_key=$2' DELIMITER AS '|' GZIP ESCAPE;`, os.Get

我正在使用pq,我有一个如下功能:

func UpdateTable(tx *sql.Tx) error {
    _, err := tx.Exec(`
    copy public.mytable FROM
    's3://mybucket/mytable' credentials
    'aws_access_key_id=$1;aws_secret_access_key=$2' DELIMITER AS '|'
    GZIP ESCAPE;`,
        os.Getenv("AWS_ACCESS_KEY_ID"),
        os.Getenv("AWS_SECRET_ACCESS_KEY"))

    if err != nil {
        return err
    }
    return nil
}
尝试运行该函数时,我收到错误消息

pq: got 2 parameters but the statement requires 0

这是由于SQL语句中的原始字符串和单引号造成的吗?我可以使用字符串文字吗?

您是否尝试过使用
而不是
$X
?PostgreSQL的占位符是$X,但是的,我甚至尝试过?您是否只尝试了双引号?
COPY
不支持查询参数,因此,在将查询传递给
Exec
之前,您需要手动设置查询的格式。我在
(“从表中选择*,其中名称=?”,名称)
(“从表中选择*,其中名称=”?”,名称)
(“从表中选择*,其中名称=“$”,名称)
(“从表中选择*,其中名称=“$1”,名称)
但它已通过=>
解决(“从姓名为$1的人员中选择*”)