暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

可在 PREPARE 语句中指定语句文本

淮海路小佩奇 2023-10-30
71


• 作为引用的字符串

• 或作为存储在 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 语句来处理包含“集合派生的表”段的准备好的语句。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论