PUT 语句

为了以后插入到数据库内,使用 PUT 语句来在插入缓冲区中存储一行。

语法

元素 描述 限制 语法
cursor_id 游标的名称 必须是打开的 标识符
cursor_id_var 主变量 = cursor_id 必须为字符类型;游标必须是打开的 特定于语言
descriptor 系统描述符区域的名称 必须已分配 用引号括起的字符串
descriptor_var 包含 descriptor 的主变量 必须已分配 用引号括起的字符串
indicator_var 如果相应的 output_var 收到 NULL 值,则为要收到返回代码的主变量 不可为 DATETIME 或 INTERVAL 数据类型 特定于语言
output_var 其内容代替准备好的 INSERT 语句中的问号(?)占位符的主变量 必须为字符数据类型 特定于语言
sqlda_pointer 指向 sqlda 结构的指针 第一个字符不可为($)或(:)符号 DESCRIBE 语句

用法

此语句为对 SQL 的 ANSI/ISO 标准的扩展。您可随同 ESQL/C 使用此语句。

PUT 将行存储在打开游标时创建的插入缓冲区中。

如果当该语句执行时该缓冲区没有空间存储新行,则将被缓冲的行成块写到数据库,并清空缓冲区。因此,一些 PUT 语句执行导致将行写到数据库,而一些不写。您可使用 FLUSH 语句来将缓冲的行写到数据库,而不添加新行。在关闭 Insert 游标之前,CLOSE 语句写所有余下的行。

如果当前的数据库使用显式的事务,您必须在一事务之内执行 PUT 语句。

下列示例使用 GBase 8s ESQL/C 中的 PUT 语句:
EXEC SQL prepare ins_mcode from 
   'insert into manufact values(?,?)';
EXEC SQL declare mcode cursor for ins_mcode;
EXEC SQL open mcode;
EXEC SQL put mcode from :the_code, :the_name; 

PUT 语句不是 X/Open SQL 语句。因此,如果您在 X/Open 模式下编译 PUT 语句,则会得到警告信息。