1、 最近同事遇到了每天手工导入 Excel 数据到 Oracle 的问题,他目前的操作是使用 PL/SQL Developer 中的复制粘贴方法,这样每天都需要进行手工的操作,很明显长期下来的工作量是比较大的,于是找了几种可供使用的导入方法: 一、直接使用 SQL*Loader 导入 SQL*Loader 是 Oracle 自带的数据加载工具,其数据导入比较专业,有各种参数及选项可供选择,经常是作为数据仓库中大型数据的导入方法选择。 优点: 1、可将导入命令写入 BAT 文件直接批量处理 2、导入处理比较专业,提供各种参数选择 3、无需操作 Oracle 所在服务器 缺点: 1、Excel 文件
2、需要另存为 txt 或 csv 格式(似乎没有自动完成的方法) 总得来说这种方法是最值得采用的,可以自动建立操作系统的批处理文件执行 SQLLDR 命令,将数据导入原始接收表,并在数据库中设置触发器进行精细操作。 二、使用外部表直接更新 Excel 数据 Oracle 的外部表其实也可以满足将外部数据读入数据库的功能,但是其可操作性相比SQL*Loader 还是要小很多 优点: 1、无需执行导入操作,更新外部文本文件后可直接查询数据 2、仅在查询时操作一次数据,对系统资源占用较小 缺点: 1、需要建立 directory ,一是要有权限,二是文件必须放到 Oracle 服务器上( 似乎不能远程
3、) 2、需要上传文件,而且无法进行多表导入等复杂的操作 3、同样需要将 Excel 文件存储为 txt 或 csv 格式 这种方法对于权限要求高,操作性弱,仅针对于简单的数据导入时使用。 三、PL/SQL Developer 粘贴法 这种方法就比较简单易用了,每次复制粘贴就行,只限于偶尔的导入使用,要是每天导入就累死人了。 优点: 1、操作便捷,简单直接 2、仅需要最简单的 update/insert/delete table 权限 缺点: 1、只能对一张表进行操作,多表操作会十分复杂 2、需要手动操作的工作量较大 3、所有数据需在 Excel 中处理完毕,导入时无法进行任何简单操作 具体操作
4、方法: 1、在 PL/SQL Developer 中选择需要操作的表,右键-Edit Data; 2、可以直接在数据窗口中修改或粘贴新的数据(注意格式); 3、点击那个钩(Post Change); 4、提交数据; 四、使用 Access 中转 这种方法只是在网上看到了一下,对于 Access 没有什么研究,但是觉得应该会有以下缺点 1、导入无法自动刷新,甚至连简单的点击刷新也没有 2、需要建立 ODBC、导入、导出等多步操作,工作量极大 3、数据导入到 Oracle 中时,基本上没有可操作性,只能最简单的操作 这种方法唯一的优点大概就是可以直接将 Excel 的数据导入到 Access,但是
5、操作步骤也比较多 转一下网上说的方法: 1、在本地创建一个 Access 数据库,将 Excel 数据先导入到 Access。( 直接右键-导入-Excel) 2、在本地创建 ODBC,链接 oracle 数据库。将 oracle 中需要导入数据的表以链接表的方式在本地 Access 中创建 3、在 Access 数据库中创建插入查询将导入好的 Excel 数据导入到 oracle 中 这种方法基本没有什么使用价值,除非是别的什么东西都没有的情况下被迫使用。 五、使用 SQL Server 中转 这种方法基本上和 Access 一样,使用 SQL Server 自带的工具先将数据从 Excel 创建到SQL Server,再导出到 Oracle。 SQL Server 的优点在于,它有自带的导出工具,可以直接按向导创建 ODBC、导入表名等。