• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    DB2编程序技巧 (五)

    发布者: 福建二哥 | 发布时间: 2025-6-18 12:50| 查看数: 79| 评论数: 0|帖子模式

    正在看的db2教程是B2编程序技巧 (五)。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 要好。

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表