0

我有一个包含大约 500 万条记录的 ORACLE 表,并且还在不断增长。他们正在使用访问将数据导出到(从 Oracle 到 Access)。无论我向他们提出什么建议,他们都不会改变他们的系统。

因此,为了能够处理数据并将其导出到 Excel,我必须将数据拆分为 3 个数据库文件。例如,假设我有表

database1.TBL_A_to_G

database2.TBL_H_to_O

数据库3.TBL_P_to_Z

由于它们来自单个表,因此它们具有相同的字段。比方说,

字段 1、字段 2、字段 3...字段 30

如何在访问中获取查询,从 3 个表中获取数据,就好像它是一个一样?

我试过了

从 TBL_A_to_G 中选择字段 1、字段 2、字段 3、字段 4、...字段 30

联盟

SELEC Field1, Field2, Field3, Field4, ... Field30 FROM TBL_H_to_O

-我必须将此查询保存为 TBL_A_O 然后,

从 TBL_A_O 中选择字段 1、字段 2、字段 3、字段 4、...字段 30

联盟

从 TBL_P_to_Z 中选择字段 1、字段 2、字段 3、字段 4、...字段 30

这种方法的问题是我不能在一个查询语句中合并三个表。我收到一条错误消息,说我可以合并那么多字段。另外,我仍然遇到一些性能问题。我需要找到一种方法来考虑性能。

我也对替代品持开放态度。目标是从这 3 个表(在三个不同的数据库中)中获取数据,然后将它们作为查询(使用公式等)导出到 excel 中。

4

2 回答 2

0

尝试union all改用:

SELECT Field1, Field2, Field3, Field4, ... Field30 FROM TBL_A_to_G
UNION ALL
SELECT Field1, Field2, Field3, Field4, ... Field30 FROM TBL_H_to_O
union all
SELECT Field1, Field2, Field3, Field4, ... Field30 FROM TBL_P_to_Z

每个表只有 30 个字段,这对于 Access 应该没问题。

于 2013-03-25T01:11:12.877 回答
0

首先,您需要知道是否要重复寄存器,如果是,请使用 UNION ALL,否则使用 UNION。可能您必须从 ACCESS 更新统计信息以提高性能。关于字段问题,您是否使用错误的名称来访问数据,请记住 UNION/UNION ALL 将第一个查询的字段名称用于结果表。

于 2013-03-25T02:18:10.407 回答