[英]Errors while passing parameters into a psql command
我正在尝试连接到Redshift集群并使用参数运行SQL脚本,但是却出现错误。
这是Bash命令:
psql -v schema="$REDSHIFT_SCHEMA" -h "$REDSHIFT_HOSTNAME" -d "$REDSHIFT_DATABASE" -U "$REDSHIFT_USERNAME" -p "$REDSHIFT_PORT" -f "nulltest.sql" -v inputStartDateId=20170318 -v inputEndDateId=20170404
而且nulltest.sql
的内容是:
select
COALESCE( $inputStartDateId, min(StartDateID)),
COALESCE( $inputEndDateId, max(EndDateID))
from (
select
row_number()over(order by FiscalWeekID desc) as rownum,
FiscalWeekID,
min(dateid)StartDateID
,max(dateid)EndDateID
from
dm.dim_Time
where DateKey < getdate()
group by FiscalWeekID
) a
where rownum <= 3
我得到的错误是:
psql:nulltest.sql:15: ERROR: syntax error at or near "$"
LINE 2: COALESCE( $inputStartDateId, max(StartDateID))
我在SQL脚本中错误地调用了参数吗? 当我在运行时将值传递给参数时,SQL通过Aginity运行得非常好。 我不确定通过psql
命令调用SQL时应该有什么不同
您在命令行上正确传递了参数,但您的nulltest.sql文件应使用:inputStartDateId
或:'inputStartDateId'
而不是$inputStartDateId
。 先前的答案: https : //stackoverflow.com/a/30850125/6650678 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.