欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DB2编程序技巧 (五)

程序员文章站 2022-03-09 11:54:13
正在看的db2教程是:db2编程序技巧 (五)。1.16 存储过程fence及unfence fence的存储过程单独启用一个新的地址空间,而unfence的存储过程和调用...
正在看的db2教程是:db2编程序技巧 (五)。1.16 存储过程fence及unfence
fence的存储过程单独启用一个新的地址空间,而unfence的存储过程和调用它的进程使用同一个地址空间。
一般而言,fence的存储过程比较安全。
但有时一些特殊的要求,如要取调用者的pid,则fence的存储过程会取不到,而只有unfence的能取到。

1.17 sp错误处理用法
如果在sp中调用其它的有返回值的,包括结果集、临时表和输出参数类型的sp,
db2会自动发出一个sqlwarning。而在我们原来的处理中对于sqlwarning都
会插入到日志,这样子最后会出现多条sqlcode=0的警告信息。
处理办法:
定义一个标志变量,比如declare v_status integer default 0,
在call spname之后, set v_status = 1,
declare continue handler for sqlwarning
begin
if v_status <> 1 then
--警告处理,插入日志
set v_status = 0;
end if;
end;
1.18 import用法
db2 import  from  gh1.out   of  del messages err.txt insert into  db2inst1.tb_dbf_match_ha

注意要加schma

1.19 values的使用
如果有多个 set  语句给变量付值,最好使用values语句,改写为一句。这样可以提高效率。

但要注意,values不能将null值付给一个变量。
values(null) into out_return_code;
这个语句会报错的。


1.20 给select 语句指定隔离级别
select * from tb_head_stock_balance with ur

1.21 atomic及not atomic区别
atomic是将该部分程序块指定为一个整体,其中任何一个语句失败,则整个程序块都相当于没做,包括包含在atomic块内的已经执行成功的语句也相当于没做,有点类似于transaction。


2  db2编程性能注意
2.1 大数据的导表
应该是export后再load性能更好,因为load不写日志。
比select into 要好。