在DB2中使用嵌套的Read Uncommitted

时间:2015-02-03 15:18:28

标签: sql db2

在DB2 v10 for z / os的查询中,我需要从实时生产线中提取数据,因此我无法对其进行任何锁定。这种情况下的准确性仅次于锁定数据,因为锁定数据对于生产来说非常糟糕。我的目标是做这样的事情:

INSERT INTO newTable 
SELECT a, b, c  
FROM (SELECT d, e, f 
      FROM tableB b
      FOR FETCH ONLY WITH UR)

我已经尝试了所有我能想到的事情,但似乎每当我将代码置于FROM语句中时,它就会在“FOR FETCH ONLY WITH UR”上给出一个错误,即使它之前没有当相同的代码在其他地方。当我把“FOR FETCH ONLY with UR”或者只是“WITH UR”时我得到的错误通常是SQLCODE -199“ILLEGAL USE FOR FOR / WITH .....”

我也尝试过这样的事情:

INSERT INTO newTable
WITH tableA AS (
      SELECT d, e, f 
      FROM tableB b
      FOR FETCH ONLY WITH UR
      )
SELECT a, b, c
FROM tableA

但到目前为止我还没有找到一种方法来指定WITH UR或者没有锁定tableB中的数据,同时能够将它用于处理并将其放入newTable中。我做错了什么,甚至可以做我想做的事情?

先谢谢

0 个答案:

没有答案