Поддерживает ли RedShift Postgresql переменную Bind?

Я получаю доступ к AWS RedShift через модуль DBI и DBD::Pg в Perl, и у меня возникают проблемы с переменной привязки SQL. Сначала я вызываю подготовку с оператором sql (? вместо переменной), а затем вызываю выполнение с массивом переменных, который необходимо сопоставить с ?, но это не работает. Он просто выдает «синтаксическую ошибку».

Насколько я понимаю, эта переменная привязки должна поддерживаться драйвером и самой базой данных, поэтому я не уверен, является ли это проблемой драйвера или RedShift, но тогда я не уверен, что мое понимание (поддержка переменной привязки зависит от драйвера и базовая база данных) правильно. Если бы кто-то мог пояснить, было бы здорово.


person kee    schedule 11.10.2013    source источник


Ответы (1)


Подготовленные операторы поддерживаются, но правильное обозначение параметров: $1, $2, ...

Из Руководства для разработчиков Redshift:

Подготовленные операторы могут принимать параметры: значения, которые подставляются в оператор при его выполнении. Чтобы включить параметры в подготовленный оператор, укажите список типов данных в операторе PREPARE, а в самом подготовленном операторе укажите параметры по позиции, используя нотацию $1, $2,... При выполнении оператора укажите фактические значения этих параметров в операторе EXECUTE.

person altermativ    schedule 17.10.2013