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