EXECUTE

执行预编译的SQL语句。

概要

EXECUTE <name> [ (<parameter> [, ...] ) ]

描述

EXECUTE 用于执行先前准备好的语句。由于预编译语句仅在会话期间存在,因此该预编译语句必须由当前会话中较早执行的 PREPARE 语句创建。

若创建该语句的PREPARE语句指定了某些参数,则必须向EXECUTE语句传递一组兼容的参数,否则数据库将引发错误。由于预编译语句(与函数不同)不会根据参数类型或数量进行重载,因此预编译语句的名称在数据库会话中必须唯一。

有关预编译语句的创建和使用方法,请参阅PREPARE

参数

  • name
    • 要执行的预编译语句的名称。
  • parameter
    • 预编译语句中参数的实际值。该值必须是能产生与该参数数据类型兼容值的表达式,该数据类型在创建预编译语句时已确定。
  • Outputs
    • EXECUTE 返回的命令标签是预编译语句的标签,而非 EXECUTE 本身。

示例

创建一个用于INSERT语句的预编译语句,然后执行它:

PREPARE fooplan (int, text, bool, numeric) AS
    INSERT INTO foo VALUES($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);

兼容性

SQL 标准包含 EXECUTE 语句,但仅适用于嵌入式 SQL。此版本的 EXECUTE 语句还采用略有不同的语法。

另见

DEALLOCATE, PREPARE