查询远程表时出现数据刷新问题

时间:2014-10-07 09:51:31

标签: vb.net entity-framework oracle10g

假设有两个不同的Oracle数据库,A和B,由从A到B的dblink链接。

在数据库A上有一个这样的表:

CREATE TABLE LOCAL_TABLE (
    TAB_PK NUMBER(3) NOT NULL PRIMARY KEY,
    NAME VARCHAR2(10)
);

在数据库B上,我们有一个这样的表:

CREATE TABLE REMOTE_TABLE (
    TAB_PK NUMBER(3) NOT NULL PRIMARY KEY,
    LOCAL_TABLE_FK NUMBER(3),
    QUANTITY NUMBER(3)
);

上述表格显然过于简单,可能并不完全准确,但应该可以重现我遇到的问题。

表A和表B都由许多客户端应用程序填充,这些应用程序在每个应用程序中插入相关数据。

现在假设在数据库A上有这样的视图:

CREATE OR REPLACE VIEW LINKING_VIEW AS
SELECT
    L.TAB_PK,
    L.NAME,
    R.QUANTITY
FROM 
    LOCAL_TABLE L INNER JOIN REMOTE_TABLE@REMOTE_DB R ON L.TAB_PK = R.LOCAL_TABLE_FK

我的WCF服务的代码查询了这个视图,它暴露了两个方法:

  • UpdateQuantity(更新表B上一组行的数量)
  • QueryView(返回视图内容)

我所遇到的是,当我多次调用UpdateQuantity然后调用QueryView时,我不会在第一次调用时获得更新的数量,但仅限于成功调用或经过一段时间后。

我没有发布任何应用程序代码,因为我不认为问题出在应用程序代码中。我设法重现更新表并使用SQLDeveloper或Toad查询视图的问题。

除了将两个表放在同一个数据库中之外,还有任何建议的解决方案吗?

0 个答案:

没有答案