SQL高级主题全解析:从语句运用到事务控制
1. SQL INCLUDE语句
SQL INCLUDE语句的作用是将外部源成员中的源语句插入到包含该INCLUDE语句的源成员中。例如,有一个名为SqlErrChk的源成员,其中包含错误检查代码。我们可以使用INCLUDE语句让SQL预编译器在SQL语句之后包含这段代码:
INCLUDE SqlErrChk;
这里,源成员名紧跟在INCLUDE关键字之后。在使用CRTSQLRPGI(创建SQL ILE RPG对象)或其他用于创建程序的命令时,INCFILE参数指定了包含该成员的模式和源文件。需要注意的是,对于单个RPGLE源成员,所有SQL INCLUDE语句都指向同一个包含源文件,在编译SQL程序时无法包含来自两个不同源文件的成员。
2. 对象锁与行锁概述
在多用户环境下,多个用户可以同时访问应用程序对象。为防止不同作业的操作相互干扰,操作系统提供了对象锁和行锁机制。当一个作业持有对象锁或行锁时,会限制其他作业对该锁定对象或行的操作。数据库管理系统(DBMS)利用这些锁定机制避免多个作业对数据库的更新冲突。多数情况下,默认锁定机制就足够了,但在某些场景中,可能需要显式添加锁来防止冲突。
例如,一个用户开始进行日终批量事务处理,而另一个用户在不知情的情况下调用交互式程序添加一些最后时刻的事务。如果程序没有针对这种情况进行设计,交互式作业输入的事务可能会因为添加在批量作业已处理事务之后而丢失。默认的对象锁定会允许两个作业都对表进行更新操作,但可以使用SQL LOCK TABLE语句或ALCOBJ(分配
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



