看到一句话,*的IT畅销书作者侯捷说的,“记忆最好的方式是发表”,很受启示,现在开始,多记录一些学习和思想变化的轨迹吧。
因为项目的关系,公司上了ORACLE的数据库,今天现学现卖写写如何从SQL SERVER 导出数据至ORACLE,以SQL SERVER 2005和ORACLE 10G 为例。
必备的条件
1:)能连到SQL SERVER和ORACLE,也就是要有SQL SERVER企业管理器,并且装上了连接ORACLE的驱动。
2:)有数据库建模的工具,PowerDesigner
实际上SQL SERVER 是提供数据导出至其他数据源包括ORACLE,EXCEL等等,在可以连接到ORACLE的情况下,我们可以在想导出表数据的数据库上右键选择“任务”-“导出数据”分别填上源,目的数据库链接信息,再选择要导数据的表,如果不去指定一个已有的表,SQL SERVER会用SQL语句来创建一个表,然后导出数据到这个表,OK,打开PL/SQL DEVELOPER,OK数据已经导进来了,并且SQL会做一些数据类型上的转换。
这是最简单的方法,并且很直观,但是有一个问题,SQL导入创建表的时候并没有创建主键,外键,约束等等,手工去添加又很麻烦,这里我用PowerDesigner来生成建表的SQL 语句,在PD下建立SQL 的 物理数据模型,将想导出的数据库反向出来,然后建立ORACLE 的物理数据模型,将反向出来的表复制到ORACLE的物理数据模型中,用SQL 查看,调整建表的语句,我的感觉最好是通过工具来调整表信息,避免出错。主要要改的地方有 数据库的用户,数据列的类型。
调整好在ORACLE中建表语句后,在PL/SQL DEVELPER中执行建表语句,然后使用上面的SQL 导出数据的方法,注意这个时候可以选择要导进的表,SQL会自动向其中追加数据,也可以将建表的语句复制到SQL 的导出数据中覆盖SQL SERVER的建表SQL语句,然后进行导出。
也可以通过采用SQL 迭代的方式生成大量INSERT INTO的语句来导出数据,这样也比较灵活,需要手工用SQL代码来更改一些东西。
另外在网上看了下,也有用ORACLE的透明网关的方法,可能还有别的可行办法,实践过来再来写写。
相关文章
- PL SQL 12.0.7的安装及注册码,汉化包,连接Oracle远程数据库,中文乱码问题处理
- 本地不安装oracle-client,使用pl/sql developer连接数据库
- Microsoft SQL server 2012数据库学习总结(一)
- ADO连不上数据库?运行程序时出现:Microsoft OLE DB Provider for SQL Server 用户登录‘sa’失败
- SQL Server中查询数据库及表的信息语句
- (转)在SQL Server 2016,Visual Studio 2017环境下,连接数据库屡屡失败,在connectionString上出的问题
- Oracle 数据库 查询 执行sql语句的机器名
- 远程linux服务器mysql数据库导入和导出.sql文件
- Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)
- Linux服务器上oracle数据库的导出expdp和导入impdb