Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
在指定的游标中插入行。
PUT cursor-name { USING DESCRIPTOR sqlda-name | FROM hostvar-list } [ INTO { DESCRIPTOR sqlda-name | hostvar-list } ] [ ARRAY :row-count ]
cursor-name : identifier | hostvar
sqlda-name : identifier
hostvar-list:可包含指示符变量
row-count : integer | hostvar
在指定的游标中插入行。列的值从第一个 SQLDA 或主机变量列表中获取,与 INSERT 语句中的列(对于 INSERT 游标)或 SELECT 列表中的列(对于 SELECT 游标)是一对一的对应关系。
PUT 语句只能在满足以下条件的 INSERT 或 SELECT 语句的游标上使用:此语句的 FROM 子句引用单个表,或引用由单个基表组成的可更新视图。
如果 SQLDA 中的 sqldata 指针为空指针,则表示没有为该列指定任何值。如果有 DEFAULT VALUE 与该列关联,则使用缺省值;否则,使用 NULL 值。
第二个 SQLDA 或主机变量列表包含 PUT 语句的结果。
可选的 ARRAY 子句可用于执行宽放置,即一次插入多行,这样可以提高性能。整数值是插入的行数。SQLDA 中,每个条目必须有一个变量(行数 * 列数)。第一行放在 SQLDA 变量 0 和(每行的列数)-1 之间,依此类推。
对于滚动(对值敏感)游标,如果新行与 WHERE 子句匹配且键集游标未完成填充,则显示插入的行。对于动态游标,如果插入的行与 WHERE 子句匹配,则可能显示该行。不敏感游标不能更新。
您必须是游标中所引用表的所有者,或具有表的 INSERT 特权,或者具有 INSERT ANY TABLE 系统特权。
当将行插入到对值敏感的游标(即,由键集决定的游标)时,插入的行会出现在结果集的末尾处,即使它们和查询的 WHERE 子句不匹配,或者当 ORDER BY 子句以正常方式将它们放置在结果集的其它位置时也是如此。
SQL/2008 服务商扩充。
以下语句说明了如何在嵌入式 SQL 中使用 PUT:
EXEC SQL PUT cur_employee FROM :employeeID, :surname;