尝试在sqlActivity中使用脚本参数时:

 {
"id" : "ActivityId_3zboU",
  "schedule" : { "ref" : "DefaultSchedule" },
  "scriptUri" : "s3://location_of_script/unload.sql",
  "name" : "unload",
  "runsOn" : { "ref" : "Ec2Instance" },
  "scriptArgument" : [ "'s3://location_of_unload/#format(minusDays(@scheduledStartTime,1),'YYYY/MM/dd/hhmm/')}'", "'aws_access_key_id=????;aws_secret_access_key=*******'" ],
  "type" : "SqlActivity",
  "dependsOn" : { "ref" : "ActivityId_YY69k" },
  "database" : { "ref" : "RedshiftCluster" }
}

其中unload.sql脚本包含:
 unload ('
    select *
    from tbl1
 ')
 to ?
 credentials  ?
 delimiter ',' GZIP;

或者 :
 unload ('
    select *
    from tbl1
 ')
 to ?::VARCHAR(255)
 credentials  ?::VARCHAR(255)
 delimiter ',' GZIP;

流程失败:
syntax error at or near "$1" Position

知道我在做什么错吗?

最佳答案

我相信您正在为Redshift使用此sql事件。您是否可以修改sql脚本以使用其位置符号来引用参数。
要引用sql语句本身中的参数,请使用$ 1,$ 2等。

参见http://www.postgresql.org/docs/9.1/static/sql-prepare.html

关于amazon-web-services - Amazon数据管道: How to use a script argument in a SqlActivity?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27481264/

10-11 06:28