RedShift Postgresql是否支持Bind变量?

时间:2013-10-11 17:56:02

标签: amazon-redshift

我通过DBI和Perl中的DBD::Pg模块访问AWS RedShift,我遇到了SQL绑定变量的问题。我首先使用sql语句(?代替变量)调用prepare,然后使用需要映射到?的变量数组调用execute但它不起作用。它只是吐出“语法错误”。

我的理解是这个绑定变量需要得到驱动程序和数据库本身的支持,所以我不确定它是驱动程序还是RedShift的问题,但后来我不确定我的理解是否(绑定变量支持取决于在驱动程序和底层数据库上)是正确的。如果有人可以澄清,那就太好了。

1 个答案:

答案 0 :(得分:2)

支持预备语句,但参数的正确表示法是$ 1,$ 2,...

来自Redshift Developer Guide

  

预备语句可以采用参数:替换的值   执行时的语句。要包含参数   准备好的语句,提供PREPARE中的​​数据类型列表   声明,并且在要准备的声明中,请参考   按位置使用符号$ 1,$ 2,...执行时的参数   声明,在中指定这些参数的实际值   执行声明。