首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

db2一个功能不知道怎么实现

2012-03-29 
db2一个功能不知道如何实现我想实现一个功能,就是每次查询A表的时候,如果A表资源忙的话,就重新查一次,总共

db2一个功能不知道如何实现

我想实现一个功能,就是每次查询A表的时候,如果A表资源忙的话,就重新查一次,总共查10次,如果超过10次,还没有查到的话,就直接返回。我知道oracle里怎么写,但是db2里不知道该如何写,麻烦大家指点。下面是oracle的实现代码

  nTryCnt := 1;
  WHILE nTryCnt <= 10
  LOOP
  BEGIN
  nReTryFlg := 0;
  SELECT
  DQBH
  ,ZXBH
  ,ZDBH
  INTO
  nNewBH
  ,nMinNum
  ,nMaxNum
  FROM
  A
  WHERE
  SYSQF = insTYQF
  FOR UPDATE NOWAIT
  ;
  EXCEPTION
  WHEN NO_DATA_FOUND THEN
  ROLLBACK;
  RETURN NULL;
  WHEN OTHERS THEN
  IF SQLCODE = -54 THEN
  nReTryFlg := 1;
  ELSE
  ROLLBACK;
  RETURN NULL;
  END IF;
  END;

  IF nReTryFlg = 0 THEN
  EXIT;
  END IF;

  nTryCnt := nTryCnt + 1;
  END LOOP;

[解决办法]
捕获锁超时和死锁异常,定义循环次数,控制逻辑差不多

热点排行