如何在Excel文件中从Oracle检索值



我有一个具有100000(100k)行的Excel文件,我在Oracle DB中有一个员工表,该表有5000000(500万)行,该表包含2列:雇员_ID和雇员。

在Excel文件中添加Employee_name列的最有效方法是什么?预先感谢

您可以将500万个记录从Oracle轻松地带入Excel(尤其是2013年以上),并带有电源查询。您可能需要从Oracle网站下载一些驱动程序,但是之后,您的过程很容易。

1)找出您是否需要为Excel版本下载PowerQuery

2)尝试:新查询 ->来自数据库 ->来自Oracle数据库

3)下载Oracle所需的驱动程序(如果需要)

输入您的服务器详细信息和凭据,这将为您设置连接。如果您不喜欢连接此方法,则可以在PC上设置ODBC数据源并执行相同的步骤,但是步骤2看起来不同...

2)新查询 ->来自其他来源 ->来自ODBC

4)研究一些有关PowerQuery和PowerPivot的研究。

如果您花时间进行设置,您的生活将变得更加容易。

如果您想快速执行此操作而不试图自动读取Excel值到数据库中:

在Excel文件中添加了一个列:

="SELECT employee_name FROM employee WHERE employee_id = "&A1&" UNION ALL"

(假设员工ID在单元格 A1开始并下行)。

然后:

  • 复制上面的公式下面的每个行的行,包含员工ID的行。
  • 选择您刚刚生成100,000行的SQL,然后将其复制到文本文件中。
  • 用半柱;
  • 替换最后一行的UNION ALL
  • 保存文件。
  • 在sql/plus或sql/developer(或其他IDE)中运行文件,然后启用输出/将输出重定向到文件。
  • 复制/粘贴您从数据库生成的数据回到Excel中。
  • 删除用于生成SQL的列。

以保持值的顺序:

="SELECT "&ROW()&" AS rn, employee_name FROM employee WHERE employee_id = "&A1&" UNION ALL"

然后在它之前添加此行:

SELECT employee_name FROM (

最后,用:

替换最终的UNION ALL
) ORDER BY rn;

最新更新