1

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

我的理解是这个绑定变量需要驱动和数据库本身支持所以我不确定是驱动的问题还是RedShift的问题但是我不确定我的理解是否(绑定变量支持取决于驱动和基础数据库)是正确的。如果有人能澄清一下,那就太好了。

4

1 回答 1

3

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

Redshift 开发人员指南

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

于 2013-10-17T12:03:15.267 回答