postgresql数据导入至oracle10g

postgresql数据导入至oracle10g

ID:8978500

大小:416.00 KB

页数:7页

时间:2018-04-13

postgresql数据导入至oracle10g_第1页
postgresql数据导入至oracle10g_第2页
postgresql数据导入至oracle10g_第3页
postgresql数据导入至oracle10g_第4页
postgresql数据导入至oracle10g_第5页
资源描述:

《postgresql数据导入至oracle10g》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,是世界上可以获得的最先进的开放源码的数据库系统,但要实现数据从PostgreSQL迁移至Oracle至今还没有找到直接的工具可以利用,所以我们现在可以借助SqlServer2005的数据导入导出功能和Oracle的SQL*Loader。一、SqlServer2005导入导出功能我们以PostgreSQL中的表test为例。1、备份表test为sql格式2、用notepad打开test.sql文件。用notepad是因为SqlServer和记事本都打不开由PostgreSQL生成的sq

2、l文件。3、把notepad中的数据部分全部拷贝至Excel文件中,记为test.xlsx。之所以要把数据转移至Exel文件中是为了把这些数据导入SqlServer,当然当数据量很大时就必须用Excel2007或者更高版本,Excel2003只支持65536行记录。4、Test.xlsx中的数据导入SqlServer2005,详见http://blog.csdn.net/qygaojiansheng/archive/2009/04/26/4126364.aspx,这样数据就转移到了SqlServer的表test中。5、利用SqlServer2005的导入导出工

3、具将test表中的数据导入至Oracle中。这个过程会遇到很多问题,最致命的一个是数据量很大或者是PostgreSQL数据库中存在非法数据时,导出进程进行中会出现错误而终止,导致失败。6、SqlServer2005导入导出功能图解,假设test表在示例数据库Northwind中。右键“Northwind”—>“任务”—>“导出数据”,点击出现下列对话框:点击“下一步”,默认,点击“下一步”,在下拉列表中选择目标数据源,“OracleproviderforOLEDB”,出现下面对话框:点击属性,按照图中所示配置参数,“测试连接”,成功后点击“确定”,一直“下一步

4、”,至勾选“test”,“下一步”,直至“完成”如果没有什么错误出现,就OK了。二、利用SQL*Loader由于前面的方法有些表的数据无法成功导入,所以我们转而利用SQL*Loader。SQL*Loader是大型数据仓库选择使用的数据加载方法,我们可以利用它将外部数据导入到Oracle中。下面是应用SQL*Loader的简单例子现在我们的excel表格test.xls中有N条记录的数据,我们的任务就是把这些数据倒入到ORACLE中的表tbl中。 首先,把表格另存为csv格式的文本文件test.csv(逗号分隔符)(也可以保存为制表分隔符txt文件)然后,创建控

5、制文件test.ctl,也即把以下内容copy至新建的记事本中loaddatainfile'C:test.csv'——'C:test.csv'为文件路径insertintotabletblfieldsterminatedby','——逗号分隔符(columnname1,columnname2,…)——顺序与表中顺序一致 该记事本以test.ctl形式保存于C:test.ctl。接着在命令行执行 C:documentsandsettingscomputername>sqlldrusername/passwordcontrol=C:test.ctl 当

6、然在这之前必须保证username中表tbl的存在,因此创建表格Createtabletbl(column1datatype,Column2datatype,……)但是我们在实际的PostgreSQL数据导入操作过程中遇到了很多问题,经常数据不能全部导入成功,生成大量的坏数据,当然如果可以保证原始数据没有非法数据存在,上面的方法完全是可行的,数据的数量不是问题所在,因为SQL*Loader强大的功能可以解决,关键是数据的质量。于是我们采取了一些手段,鉴于原始数据中日期类型的字段存在大量非法数据,在Oracle中建表时把那些字段的类型统一规定为字符型,我们还以表

7、test为例,加以说明1、在Oracle中建表test,字段类型“date”一律修改为“varchar2”,关于建表的SQL语句这里就不详细给出了。2、承接“一”中将Excel表test.xlsx另存为“文本文档(指标分隔符*txt)”,即test.txt,保存至“C:test.txt”。我们这里用“制表分隔符*txt”而不用“逗号分隔符*csv”。3、创建控制文件test.ctl。也即是把下列内容copy至新建的文本文档中,然后另存为.ctl格式文件。loaddatainfile'C:test.txt'——'C:test.txt'为文件路径insert

8、intotabletblfieldst

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。