PREPARE 语句

使用 PREPARE 语句可在运行时解析、验证和生成一个或多个 SQL 语句的执行计划。

语法

元素 描述 限制 语法
char_expression 计算得到单个 SQL 语句的文本的表达式 必须为 SELECT、EXECUTE FUNCTION 或 EXECUTE PROCEDURE 语句 表达式
statement_id 为准备好的对象在此声明的标识符 在游标和准备好的对象的名称之中(以及 SPL 中,在变量之中)必须是唯一的。 标识符
statement_id_var 存储 statement_id 的主变量 必须先前已声明为字符数据类型 特定于语言
statement_text 要准备的 SQL 语句的文本 请参阅 准备多个 SQL 语句语句文本 用引号括起的字符串.
statement_var 存储一个或多个 SQL 语句的主变量 必须为字符数据类型。如果 SQL 语句包含“集合派生的表”段,则无效。 特定于语言

用法

请在 ESQL/C 或 SPL 例程中使用此语句。

PREPARE 语句启用您的程序来在运行时收集一个(或对于 ESQL/C,多于一个)SQL 语句的文本,来声明结果的准备好的对象的标识符,并使之可运行。以三个步骤实现此 SQL 的动态形式:
  1. PREPARE 语句接收语句文本为输入,或作为引用的字符串,或 ESQL/C 字符变量,或(在 SPL 中)作为字符表达式计算的值。语句文本可包含问号(?)占位符来表示要到执行该语句时定义的值。
  2. OPEN 语句(以及在 ESQL/C 例程中,EXECUTE 语句)可提供所需要的输入值并一次或多次执行准备好的语句。
  3. 稍后,可使用 FREE 语句释放那些分配给准备好的语句的资源。

要获取更多关于在准备好的语句中以运行时的值替换占位符的信息,请参阅章节 准备接收参数的语句

当您创建准备好的对象时的整理顺序为当前,执行那个对象时的整理顺序也一样,即使该会话的(或 DB_LOCALE 的)执行时整理是不同的。

1 仅限于 ESQL/C
2 仅限于 SPL