PostgreSQL数据导入至Oracle10g.doc_第1页
PostgreSQL数据导入至Oracle10g.doc_第2页
PostgreSQL数据导入至Oracle10g.doc_第3页
PostgreSQL数据导入至Oracle10g.doc_第4页
PostgreSQL数据导入至Oracle10g.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,是世界上可以获得的最先进的开放源码的数据库系统,但要实现数据从PostgreSQL迁移至Oracle至今还没有找到直接的工具可以利用,所以我们现在可以借助SqlServer2005的数据导入导出功能和Oracle的SQL*Loader。一、SqlServer2005导入导出功能我们以PostgreSQL中的表test为例。1、 备份表test为sql格式2、 用notepad打开test.sql文件。用notepad是因为SqlServer和记事本都打不开由PostgreSQL生成的sql文件。3、 把notepad中的数据部分全部拷贝至Excel文件中,记为test.xlsx。之所以要把数据转移至Exel文件中是为了把这些数据导入SqlServer,当然当数据量很大时就必须用Excel2007或者更高版本,Excel2003只支持65536行记录。4、 Test.xlsx中的数据导入SqlServer2005,详见/qygaojiansheng/archive/2009/04/26/4126364.aspx,这样数据就转移到了SqlServer的表test中。5、 利用SqlServer2005的导入导出工具将test表中的数据导入至Oracle中。这个过程会遇到很多问题,最致命的一个是数据量很大或者是PostgreSQL数据库中存在非法数据时,导出进程进行中会出现错误而终止,导致失败。6、 SqlServer2005导入导出功能图解,假设test表在示例数据库Northwind中。右键“Northwind”“任务”“导出数据”,点击出现下列对话框:点击“下一步”,默认,点击“下一步”,在下拉列表中选择目标数据源,“Oracle provider for OLE DB”,出现下面对话框:点击属性, 按照图中所示配置参数,“测试连接”,成功后点击“确定”,一直“下一步”,至勾选“test”,“下一步”,直至“完成”如果没有什么错误出现,就OK了。二、利用SQL*Loader由于前面的方法有些表的数据无法成功导入,所以我们转而利用SQL*Loader。SQL*Loader是大型数据仓库选择使用的数据加载方法,我们可以利用它将外部数据导入到Oracle中。下面是应用SQL*Loader的简单例子现在我们的excel表格test.xls中有N条记录的数据,我们的任务就是把这些数据倒入到ORACLE中的表tbl中。首先,把表格另存为csv格式的文本文件test.csv(逗号分隔符)(也可以保存为制表分隔符txt文件)然后,创建控制文件test.ctl,也即把以下内容copy至新建的记事本中load datainfile C:test.csv C:test.csv为文件路径insert into table tblfields terminated by , 逗号分隔符(columnname1,columnname2,) 顺序与表中顺序一致该记事本以test.ctl形式保存于C: test.ctl。接着在命令行执行C:documents and settingscomputernamesqlldr username/password control=C: test.ctl当然在这之前必须保证username中表tbl的存在,因此创建表格Create table tbl (column1 datatype,Column2 datatype,)但是我们在实际的PostgreSQL数据导入操作过程中遇到了很多问题,经常数据不能全部导入成功,生成大量的坏数据,当然如果可以保证原始数据没有非法数据存在,上面的方法完全是可行的,数据的数量不是问题所在,因为SQL*Loader强大的功能可以解决,关键是数据的质量。于是我们采取了一些手段,鉴于原始数据中日期类型的字段存在大量非法数据,在Oracle中建表时把那些字段的类型统一规定为字符型,我们还以表test为例,加以说明1、 在Oracle中建表test,字段类型“date”一律修改为“varchar2”,关于建表的SQL语句这里就不详细给出了。2、 承接“一”中将Excel表test.xlsx另存为“文本文档(指标分隔符*txt)”,即test.txt,保存至“C:test.txt”。我们这里用“制表分隔符*txt”而不用“逗号分隔符*csv”。3、 创建控制文件test.ctl。也即是把下列内容copy至新建的文本文档中,然后另存为.ctl格式文件。load datainfile C:test.txt C:test.txt为文件路径insert into table tblfields terminated by X09 制表分隔符(columnname1,columnname2,) 顺序与表中顺序一致该记事本以test.ctl形式保存于C: test.ctl。4、接着在命令行执行C:documents and settingscomputernamesqlldr username/pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论