我有一个具有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,然后将其复制到文本文件中。
- 用半柱
;
替换最后一行的 - 保存文件。
- 在sql/plus或sql/developer(或其他IDE)中运行文件,然后启用输出/将输出重定向到文件。
- 复制/粘贴您从数据库生成的数据回到Excel中。
- 删除用于生成SQL的列。
UNION ALL
以保持值的顺序:
="SELECT "&ROW()&" AS rn, employee_name FROM employee WHERE employee_id = "&A1&" UNION ALL"
然后在它之前添加此行:
SELECT employee_name FROM (
最后,用:
替换最终的UNION ALL
) ORDER BY rn;