DB2编程序技巧 (五)
DB2编程序技巧 (五)
发布时间:2016-12-28 来源:查字典编辑
摘要:正在看的db2教程是:DB2编程序技巧(五)。1.16存储过程fence及unfencefence的存储过程单独启用一个新的地址空间,而un...

正在看的db2教程是:DB2编程序技巧 (五)。1.16 存储过程fence及unfence

fence的存储过程单独启用一个新的地址空间,而unfence的存储过程和调用它的进程使用同一个地址空间。

一般而言,fence的存储过程比较安全。

但有时一些特殊的要求,如要取调用者的pid,则fence的存储过程会取不到,而只有unfence的能取到。

1.17 SP错误处理用法

如果在SP中调用其它的有返回值的,包括结果集、临时表和输出参数类型的SP,

DB2会自动发出一个SQLWarning。而在我们原来的处理中对于SQLWarning都

会插入到日志,这样子最后会出现多条SQLCODE=0的警告信息。

处理办法:

定义一个标志变量,比如DECLAREV_STATUSINTEGERDEFAULT0,

在CALLSPNAME之后,SETV_STATUS=1,

DECLARECONTINUEHANDLERFORSQLWARNING

BEGIN

IFV_STATUS<>1THEN

--警告处理,插入日志

SETV_STATUS=0;

ENDIF;

END;

1.18 import用法

db2importfromgh1.outofDELmessageserr.txtinsertintodb2inst1.tb_dbf_match_ha

注意要加schma

1.19 values的使用

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

但要注意,values不能将null值付给一个变量。

values(null)intoout_return_code;

这个语句会报错的。

1.20 给select语句指定隔离级别

select*fromtb_head_stock_balancewithur

1.21 atomic及notatomic区别

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

2 DB2编程性能注意

2.1 大数据的导表

应该是export后再load性能更好,因为load不写日志。

比selectinto要好。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新DB2数据库学习
热门DB2数据库学习
编程开发子分类