尝试在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/