189 8069 5689

oracle怎么迁移函数,oracle数据文件迁移方法

如何从oracle迁移数据到sql server

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

“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 成都创新互联是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都网站建设、成都做网站、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!

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的迁移到此结束。当然,迁移的是否正确还需要在之后的使用中检查,发现错误及时修改即可。

MySQL中实现oracle中to_number函数。 在将开放库中的to_number函数迁移到正式环境时,to_number函数失效

报错信息是30.11并不是整型的,但是你函数定义那边CAST(input AS UNSIGNED INTEGER)是转成无符号整型,所以不行你要改成

CREATE FUNCTION to_number (input VARCHAR(100)) RETURNS int(10)BEGIN RETURN CAST(input AS  DECIMAL);END

oracle里的函数迁移到db2

create function TOPCCMS.ET_BTDATE()

RETURNS date

begin

declare v_BTDATE DATE;

SELECT BATCH_DATE INTO v_BTDATE FROM CCMS_BASI_GLOBAL fetch first 1 rows only;

return v_BTDATE;

end;

数据库迁移时怎样将oracle的视图导入postgresql中?

一. 如果B数据库是新建的,为了移植数据库,那就直接附加,分下列步骤:

1. 打开配置管理器

2. 停止SQL Server服务

3. 在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data目录下找到数据库文件,复制到B电脑上,B电脑打开数据库附加A数据库就好了。

二. 如果B数据库已经曾在,可以使用导出任务

打开数据库,右键点在数据库上,找到导出任务

按照向导选择该到处的数据表和视图。填写两个数据库的验证信息

oracle数据迁移有几种方法

数据库版本及目录结构相同可用rman备份还原;或者关掉数据库后直接复制文件到新机器

数据库版本或目录结构不同的话就用数据泵导来做

怎样将postgresql数据迁移到oracle中

迁移PostgreSQL到Oracle涉及到两方面工作:表结构的迁移和表数据的迁移。

表结构的迁移

表结构的迁移相对简单可以借助ESF DatabaseMigration Toolkit进行.。ESF Database MigrationTookit工具是试用版,所以不能通过其迁移数据(它会将所有varchar字段的开头替换为T)。通过ESF DatabaseMigration Toolkit迁移完成后,通过PL/SQL developer的export userobjects得到创建表结构的语句。

表数据的迁移

数据迁移有2种方式:postgreSQL导出insert语句然后执行语句导入或者postgreSQL导出文件然后用oracle的sqlldr方式导入。前者存在clob难以插入以及sql长度限制等问题,推荐后者方式进行数据迁移。

1.Copy命令导出数据文件

copy table1 to'd:/table1.data' delimiter as '|' nullas '';

注意:postgreSQL存在boolean类型导出为t或者f(oracle用int类型1或者2来代替),使用cast函数

Copy (select cast(column asint) from table1 )to 'd:/table1.data' delimiter as '|' null as '';

批量执行使用sql函数进行

create functionexportLiferay(path text) returns void

as

$$

begin

execute 'copy table1 to ''' || path || 'table1_.data''delimiter as ''|'' null as '''' ';

return;

end;

$$

languageplpgsql;

2. 制作sqlldr控制文件

注意:字符集、clob以及时间,日期类型

load data

CHARACTERSET UTF8

into table table1

fields terminated by "|"

optionally enclosed by '"'

trailing nullcols

(

folderid,

groupid,

companyid,

userid,

createdatetimestamp"yyyy-mm-dd hh24:mi:ss.ff",

modifieddatetimestamp"yyyy-mm-dd hh24:mi:ss.ff",

parentfolderid,

name,

descriptionchar(10000)

)

3.执行导入

sqlldr import/import data=table1.data control=table1.ctllog=table1.log readsize=100000000


本文名称:oracle怎么迁移函数,oracle数据文件迁移方法
网页网址:http://cdxtjz.cn/article/hssiih.html

其他资讯