返回首页

gbase数据、南大通用产品文档:GBase8s总结

更新日期:2024年09月11日

程序可执行 INSERT、DELETE 和 UPDATE 语句,如同 修改数据 描述的那样。程序还
可使用游标来扫描整个表,更新或删除选择了的行。它还可使用游标来插入行,这样做的
好处是缓冲这些行,并以块为单位发送到数据库服务器。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 236 -

在所有这些活动中,您必须确保当发生错误时,程序会检测错误并将数据库返回到一已知
的状态。实现这一点的最重要的工具是事务日志记录。没有事务日志记录,更难以编写可
从错误恢复的程序。

11 对多用户环境编程
本部分描述当您在多用户环境中工作时需要注意的几个编程问题。
如果您的数据库包含在单个用户工作站中,且不访问来自另一计算机的数据。则您的程序
可任意修改数据。在所有其他情况下,您必须考虑一种可能性,即,在您的程序正在修改
数据时,另一程序正在读取或修改同一数据。将这种情况描述为并发:同一时刻对相同数
据的两处或多处独立的使用。本部分讨论并发、锁定和隔离级别。
本部分还描述语句高速缓存特性,它可减少每一会话的内存分配,并加速查询处理。语句
高速缓存存储那些稍后在使用相同的 SQL 语句的不同的用户会话之中共享的数据。

PREPARE_SNAPSHOT_INTERNAL 是db4ai.prepare_snapshot 函数的内置执行函数。函
数存在信息校验,无法直接调用。
参数
类型
描述
s_id
IN BIGINT
快照ID。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1119
参数
类型
描述
p_id
IN BIGINT
父快照ID。
m_id
IN BIGINT
矩阵id。
r_id
IN BIGINT
根快照ID。
i_schema
IN NAME
快照模式。
i_name
IN NAME
快照名称。
i_commands
IN TEXT[]
定义快照修改的DDL 和D
ML 命令。
i_comment
IN TEXT
快照描述。
i_owner
IN NAME
快照所有者。
i_idx
INOUT INT
exec_cmds 的索引。
i_exec_cmds
INOUT TEXT[]
用于执行的DDL 和DML。
i_mapping
IN NAME[]
将用户列映射到备份列;如
果不为NULL,
则生成规则。

不能在该循环语句中对查询的表进行更新操作。
变量loop_name 会自动定义且只在此循环中有效,
类型和select_statement 的查询结果类
型一致。loop_name 的取值就是select_statement 的查询结果。
游标的属性中%FOUND、%NOTFOUND、%ROWCOUNT 在GBase 8c 数据库中都是访
问同一个内部变量,事务和匿名块不支持多个游标同时访问。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
678