重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

oracle转sqlserver,oracle转sqlserver文本转义

如何从oracle迁移数据到sql server

前阵做了下数据库迁移,从Sql Server2005迁移到Oracle

成都创新互联提供成都网站设计、网站建设、网页设计,成都品牌网站建设广告投放平台等致力于企业网站建设与公司网站制作,10年的网站开发和建站经验,助力企业信息化建设,成功案例突破上千多家,是您实现网站建设的好选择.

10g,这里说一下迁移的方法。

Sql

Server和Oracle区别比较大,包括语法,字段类型,数据库机制,配置管理方法等等,区别是全方位的,做迁移需要注意很多问题,在迁移过程中也会遇到问题,需要细细处理之。这里说一下数据库结构的迁移,和迁移过程中注意的一些问题。(当然具体的数据库迁移过程中可能问题是不一样的,具体问题具体分析了)

迁移的方法是从Sql Server已有数据库中生成出Oracle的建库脚本,然后在Oracle数据库上执行。用到的生成工具是Power

Designer。

1、打开PD(Power

Designer简称,以下均使用PD),新建一个PDM(物理数据模型),DBMS选择Microsoft SQL

Server2005,Model name起名叫做mssdb。

2、通过逆向工程将现有Sql

Server数据库生成PDM

(1)选择Database-Reverse

Engineer Database,配置数据源,选择要迁移的数据库,输入用户名、密码。

(2)选择数据库,选择用户dbo下的所有表、视图、存储过程、方法、触发器、序列等(由于Sql Server与oracle,数据库概念上的区别,这里不需选择用户、角色)。

点击OK,生成PDM。已经建立过PDM的情况,这一步可以省略。

3、生成Oracle物理数据模型

选择Tools-Generate Physical Data Model

(1)DBMS选择Oracle

10g,输入名称:oradb。

(2)在Configure Model

Options配置中, Model Settings的TableView界面中,勾选Ignore

identifying owner。Oracle中用户的概念与Sql Server不同,这里忽略owner。

(3)Selection标签,选择需要生成的所有表、视图、外键、存储过程、方法、触发器、序列等。

点击确定,即生成了oracle 的PDM。

注意,在生成PDM的过程中可能不会一帆风顺,有可能会报错(比如提示对象长度超限),这会导致生成失败。这时需要根据具体错误提示做相应修改(可能需要多次调整,没有办法,谁让两者差别这么大的呢)。

4、生成Oracle脚本

与Sql

Server不同的是,在Oracle里表名、字段名全部为大写,若要单独处理为小写,需加上双引号。而PD生成的脚本默认是有双引号的,这里需要修改默认配置,去掉双引号。

然后选择oradb,然后选择Database-Generate

Database,进入数据库生成界面

在Format标签下,去掉勾选Owner prefix,它将省掉建表语句前“dbo.”所带来的麻烦;

在Selection标签下,选择要生成脚本的各对象;

在Preview标签下,可以预览预生成的脚本(表较多时,切换会比较慢)。

点击确定,即得到生成的脚本。

5、检查与调整

脚本是PD自动生成的,因为表比较多,在oracle上直接去执行难免会有错误。所以在执行之前需要检查下脚本的正确性。这里提几点需要注意的地方。

(1)Oracle要求表名、字段名等长度最多是30位,而Sql Server没有这个限制,所以可能会有在Sql

Server创建正常的表而在Oracle下会创建失败。

(2)检查一下主键、外键的名称,它们有可能是随机生成的名称。可根据相应规范进行修改。

(3)检查字段名是否用到了Oracle的关键字。比如Sql

Server命名“备注”字段可能会用“comment”、标题用“title”,但comment、title在Oracle中是关键字,不可以做为字段名称。

(4)存储过程、方法是否符合Oracle语法。

(5)Sql

Server有自增字段,而Oracle没有。要实现此功能,需要相应创建序列、触发器。

(6)Sql

Server中字段类型为text的情况,如果是存二进制数据需要在Oracle中选用Blob字段类型。

(7)Sql

Server有外键的情况,主表记录删除,从表记录也会跟着删除;而Oracle默认情况是当从表有记录时,所对应的主表记录不允许删除。所以这种情况下外键需要添加外键级联删除。

(8)生成的表、视图等个数是否正确,缺失的情况可单独生成脚本。

系统不一样,出现问题的点可能也不一样,具体问题具体分析。

6、建库

在Oracle数据库服务(当然要先安装好Oracle服务端、并建立数据库)orcl实例下,使用用户sys登陆并创建用户orauser,并将resource、connect角色赋给orauser(这里,orauser使用默认表空间、默认临时表空间)。

用刚创建的用户orauser登陆orcl数据库服务,执行前面已经生成的脚本,若干分钟后脚本执行完毕,观察一下执行过程中有无错误产生,也可以记录执行的日志以便日后查看;检查看表、视图等个数与Sql

Server数据库中是否一致。如果都正确,那么,数据库结构从Sql

Server到Oracle的迁移到此结束。当然,迁移的是否正确还需要在之后的使用中检查,发现错误及时修改即可。

sqlserver转oracle(三) 数据迁移及数据结构处理

sqlserver向oracle导入数据结构,本文主要使用Navicate,在表结构导入完成的情况下,我们依然需要进行一些简单的处理,才能让程序正常运行。

在表结构导入完成后,我们已经可以在oracle的连接下看到我们导入的表结构,但如果你进行查询,可能会得到的结果是:"ORA-00942: 表或视图不存在

",比如下图:

怎么将oracle里面的数据导入到sqlserver中,并且每天更新

1,先imp到oracle,再从oracle转换在sqlserver

还有一种方法,如果dmp文件比较小就可以试试,你可以把dmp文件打开,里面是一样文本,可以直接把需要的文本(其实是一些生成表和数据的SQL,还有一些是与ORACLE数据库相关的一些数据库属性,这里不用),放到sqlserver的查询管理器中,做一些相关的语法改动后执行,就可以将数据导入到SQLSERVER中

2,先用oracle的imp命令或者OEM讲DMP文件导入到ORACLE库.

如何将oracle数据库中的数据如何导入到sqlserver

假设要将SQL Server中的Northwind数据库中的Products表导出到Oracle的Scott用户 首先需要有安装SQL Server企业版 1.打开工具: 开始-程序- 导入和SQL Server数据导出数据 2.下一步,选择数据源 [数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。 [服务器]选择要导出数据的服务器,如果是本机,选择(local) [数据库]选择要导出的数据所在的库,这里选择Northwind 3.下一步,选择目的 [目的]选择Microsoft ODBC for Oracle [DSN]选择用户/系统DSN一项,然后在下拉列表框中找一个已经连接到了Scott用户的DSN名称。 如果下拉列表中没有,点下拉列表框右侧的[新建],出现创建新数据源界面。 接下来选择系统数据源,下一步,在驱动程序列表中选择Microsoft ODBC for Oracle 下一步,完成,出现Microsoft ODBC for Oracle安装界面 [数据源名称]随便输入,比如sss [说明]可以不填 [用户名称]填入要SQL Server数据导出到的Oracle用户名称,这里是scott [服务器]填入要连接到Oracle服务器所使用的服务名,比方说使用sqlplus scott/tiger@server1可以连接到数据库,那么这里就填入server1。如果本机就是服务器,使用sqlplus scott/tiger即可连接到数据库,这里空着不填即可。 这样就创建好了一个数据源sss,保证下拉列表框中选择了sss一项。 [用户名]填入SQL Server数据导出到的Oracle用户名称,这里是scott [密码]填入SQL Server数据导出到的Oracle用户使用的密码,这里是tiger 4.下一步,指定表复制或查询 如果要导出的内容是整个表,选择[从源数据库复制表和视图] 如果要导出的内容是表的一部分列,行,可以选择[用一条查询指定要传输的数据],这时需要写出一个查询语句 这里选择第一项[从源数据库复制表和视图] 5.下一步,选择源表和视图 点中要导出的表Products一行的复选框,目的、转换两栏就会出现内容。 目的可以用来选择表名。转换可以用来修改列的数据类型或是整个建表的SQL语句 6.下一步,保存、调度和复制包 选中立即运行 7.下一步,正在完成DTS导入/导出向导 8.完成 提示“成功地将n个表从Microsoft SQLServer复制到了Oracle” 9.完成,关闭导入导出程序 注意:因为oracle的表名都是大写的,而SQL的表可能是大小混写的,所以导入后在oracle里查不到该表,比如这个Products表在oracle里查询就应该写成select * from scott."Products";为了方便查询可以通过批量修改表名为大写以便后面导数据的工作。


当前名称:oracle转sqlserver,oracle转sqlserver文本转义
网站路径:http://cqcxhl.com/article/hcjshh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP