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