【发布时间】:2011-03-21 17:42:30
【问题描述】:
在使用 WHERE 子句过滤掉不需要的记录时,查询链接的 oracle 10g 表的 Access 2007 数据库返回有缺陷的结果集。奇怪的是,一些过滤正在发生,但并不可靠。
我可以可靠地演示/产生这样的问题:
- 使用 Access 2007 创建一个 *new* 数据库。
- 使用 Access 2007 创建第二个 *new* 数据库,然后“另存为”2000。
- 使用旧版本的 Access 创建第三个 *new* 数据库。
- 在每个数据库中运行以下查询:
SELECT
STATUS,
ID,
LAST_NAME,
FIRST_NAME
FROM
Oracle10g_table
WHERE
STATUS="A"
- 在使用 Access 2007 创建的两个数据库中,运行此查询将为您提供一个结果集,其中 一些 的 (STATUS="A") = false 记录已被过滤掉,但没有全部。
- 在使用旧版本 access 创建的数据库中,where 子句过滤正确,结果集正确。
- STATUS 是一个文本字段
- 该表是到 Oracle10g 数据库的“链接”表
- 该表有 68k 行
- 我已经在 60、1000 和 0 测试了超时
有人遇到过这个问题吗?
我想知道这是否是一个新的访问“功能”,也会影响 2010 年。这与 ODBC 有什么关系吗?
感谢您的帮助, - 戴夫
更多...
我刚刚尝试了另一种查询形式,使用 HAVING 而不是 WHERE,它成功了!问题是,除了这不应该改变任何东西(是的——更多的虚拟表,但不应该改变最终结果)我的最终用户将使用 Access 2007 可视化查询设计器,而不是直接输入 SQL,这将将他们输入到 WHERE 中的任何条件默认为默认值。
【问题讨论】:
标签: sql ms-access oracle10g odbc ms-access-2007