OPEN 语句

使用 OPEN 语句来激活游标。

语法

元素 描述 限制 语法
cursor_id 游标的名称 必须已由 DECLARE 语句声明 标识符
cursor_id_var 主变量 = cursor_id 必须为字符数据类型 特定于语言
descriptor 系统描述符区域的名称 必须已分配 用引号括起的字符串
descriptor_var 标识系统描述符区域的主变量 必须已分配了系统描述符区域 用引号括起的字符串
parameter_var 在准备好的 SQL 语句中以其内容替代问号(?)占位符的主变量 必须为字符或集合数据类型 特定于语言
sqlda_pointer 指向 sqlda 结构的指针,定义数据类型和在准备好的语句中要代替问号(?)的值的内存位置 不可以美元($)符号或冒号(:)开头。您必须以动态的 SQL 语句使用 sqlda 结构。 DESCRIBE 语句

用法

请随同 GBase 8s ESQL/C 或随同 SPL 使用此语句。

游标是与返回有序的值集的 SQL 语句相关联的标识符。OPEN 语句激活 DELARE 语句定义的游标。

可通过游标相关联的 SQL 语句进行归类:
  • Select 游标:与 SELECT 语句相关联的游标
  • Function 游标:与 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句相关联的游标
  • Insert 游标:与 INSERT 语句相关联的游标
  • Collection 游标:在集合变量上操作的 Select 或 Insert 游标。

在以 SPL 语言编写的 UDR 中,OPEN 语句仅可引用 Select 或 Function 游标,且这些必须指定游标的标识符,而不是存储 cursor_id 的变量。OPEN 语句不可引用 SPL 的 FOREACH 语句已经声明的直接游标。

依赖于游标相关联的语句,数据库服务器执行的特定操作有所不同。在 ESQL/C 中,当您将先前的语句与游标直接地关联(即,您未准备该语句,且将该语句标识符与游标关联),OPEN 语句隐式地准备该语句。(这不是 SPL 例程中 OPEN 的特性,在 SPL 例程中 DECLARE 语句将游标与现有的准备好的语句的标识符相关联,而不是直接地与 SQL 语句文本相关联。)

在符合 ANSI 的数据库中,如果您试图打开一已经打开的游标,则会收到错误代码。

1 GBase 8s 扩展
2 仅限于 ESQL/C