• 作为引用的字符串
• 或作为存储在 ESQL/C 程序变量中的文本
• 或(在 SPL 例程中)作为字符表达式。
下列限制适用于语句文本:
⚫ 文本仅可包含 SQL 语句。它不可包含来自主编程语言的语句或注释。
⚫ 文本可包含前面有双连字号(--),或括在大括号({ })中或括在 C 风格的斜杠和星号 (/* */)定界符中的注释。
这些符号引入或括起 SQL 注释。要获取更多关于 SQL 注释符号的信息,请参阅 如何输 入 SQL 注释。
⚫ 文本可包含或单一的 SQL 语句,或(在 ESQL/C 例程中)一系列由分号(;)分隔的语 句。
要了解不可准备的 SQL 语句的列表,请参阅 在单一语句准备中受限的语句。要了解更 多关于如何准备多 SQL 语句的信息,请参阅 准备多个 SQL 语句。
⚫ 文本不可包括嵌入的 SQL 语句前缀或结束符,诸如美元符号($)或词语 EXEC SQL。
⚫ 不像在准备好的文本中那样识别主语言变量。
因此,您不可准备包括 INTO 子句的 SELECT(或 EXECUTE FUNCTION 或 EXECUTE PROCEDURE)语句,因为 INTO 子句需要主语言变量。
⚫ 您仅可使用的标识符是在数据库中定义的那些名称,诸如表和列的名称。要获取更多关于 如何在语句文本中使用标识符的信息,请参阅 以 SQL 标识符准备语句。
⚫ 请使用问号(?)作为占位符来表示当语句执行时提供数据的位置,如在此 GBase 8s ESQL/C 示例中:
EXEC SQL prepare new_cust from 'insert into customer(fname,lname) values(?,?)';
要获取更多关于如何使用问号作为占位符的信息,请参阅 准备接收参数的语句。
如果准备好的语句包含“集合派生的表”段或 GBase 8s ESQL/C 集合变量,则在您可为该 PREPARE
语句组装文本方面有一些附加的限制。要获取关于动态的 SQL 的信息,请参阅 GBase 8s ESQL/C
程序员手册。SPL 例程不可使用动态的 SQL 语句来处理包含“集合派生的表”段的准备好的语句。




