'sqlca.sqlerrd1' 返回提供插入到表内的最后的 serial 值的单个整数。要确保有效的结 果,请紧跟在将带有 serial 值的单个行插入到表内的单 SELECT 语句之后使用此选 项。
提示: 要获取插入到表内的最后的 SERIAL8 值的值,请使用 DBINFO 的 'serial8' 选项。要获 取更多信息,请参阅 使用 'serial8' 和 'bigserial' 选项。
GBase 8s SQL 指南:语法 南大通用数据技术股份有限公司 1072
下列示例使用 'sqlca.sqlerrd1' 选项:
EXEC SQL create table fst_tab (ordernum serial, partnum int); EXEC SQL create table sec_tab (ordernum serial); EXEC SQL insert into fst_tab VALUES (0,1); EXEC SQL insert into fst_tab VALUES (0,4); EXEC SQL insert into fst_tab VALUES (0,6); EXEC SQL insert into sec_tab values (dbinfo('sqlca.sqlerrd1'));
此示例将包含主键 serial 值的一行插入到 fst_tab 表内,然后使用 DBINFO 函数来将 同一 serial 值插入到 sec_tab 表内。DBINFO 函数返回的值是被插入到 fst_tab 内的 最后一行的 serial 值。
由于 SQLCA 结构不记录通过触发器插入的 serial 值,因此您不可以 'sqlca.sqlerrd1'、
'bigserial' 或 'serial8' 选项调用 DBINFO 函数来返回触发器的活动插入的 serial 值。
要获取更多关于“SQL 通信区域”(SQLCA)数据结构的信息(sqlca.sqlerrd1 在其内是 一个字段),请参阅 GBase 8s SQL 教程指南。
使用 'sqlca.sqlerrd2' 选项
'sqlca.sqlerrd2' 选项返回提供 SELECT、INSERT、DELETE、UPDATE、EXECUTE PROCEDURE 和 EXECUTE FUNCTION 语句处理了的行的数目的单个整数。要确保 有效的结果,请在 SELECT、EXECUTE PROCEDURE 和 EXECUTE FUNCTION 语 句已执行完成之后使用此选项。此外,当您在游标内使用此选项时,要确保有效的结 果,请确保在关闭游标之前取回所有行。
下列示例展示 SPL 例程,该例程使用 'sqlca.sqlerrd2' 选项来确定从表删除的行的数目:
CREATE FUNCTION del_rows (pnumb INT) RETURNING INT; DEFINE nrows INT; DELETE FROM fst_tab WHERE part_number = pnumb; LET nrows = DBINFO('sqlca.sqlerrd2'); RETURN nrows; END FUNCTION;
要获取更多关于“SQL 通信区域”(SQLCA)数据结构的信息(sqlca.sqlerrd2 在其内 是一个字段),请参阅 GBase 8s SQL 教程指南。




