为了以后插入到数据库内,使用 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 语句。
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 语句,则会得到警告信息。