Команда EXECUTE в PostgreSQL работает так, что выполняет подготовленный ранее оператор. docs.w3cub.com postgrespro.ru Так как подготовленные операторы существуют только в рамках сеанса, они должны создаваться командой PREPARE, выполненной в текущем сеансе ранее. postgrespro.ru
Если команда PREPARE, создающая оператор, определяет некоторый набор параметров, команде EXECUTE должны быть переданы подходящие значения этих параметров, в противном случае возникнет ошибка. postgrespro.ru
Некоторые особенности работы команды EXECUTE:
- Отсутствие кеширования. web.archive.org План команды создаётся каждый раз при выполнении. web.archive.org Таким образом, строка команды может динамически создаваться внутри функции для выполнения действий с различными таблицами и столбцами. web.archive.org
- Предложение INTO. web.archive.org Указывает, куда должны быть помещены результаты SQL-команды, возвращающей строки. web.archive.org Если передаётся кортеж или список переменных, то они должны в точности соответствовать структуре результата запроса. web.archive.org Если возвращается несколько строк, то только первая будет присвоена переменной(ым) в INTO. web.archive.org Если не возвращается ни одной строки, то присваивается NULL. web.archive.org
- Использование параметров. web.archive.org В тексте команды можно использовать значения параметров, ссылки на параметры обозначаются как $1, $2 и т. д.. web.archive.org Эти символы указывают на значения, находящиеся в предложении USING. web.archive.org Такой метод позволяет исключить во время выполнения дополнительные расходы на преобразования значений в текст и обратно, и не открывает возможности для SQL-инъекций. web.archive.org