如何将应用程序从SqlServer迁移到Oracle

如何将应用程序从SqlServer迁移到Oracle,第1张

迁移主要有两个工作:

1 根据Sql Server数据库生成创建Oracle数据库的脚本

2 修改代码中的SQL语句

根据Sql Server数据库生成创建Oracle数据库的脚本

1 用PowerDesiner将Sql Server数据库反向工程生成物理数据模型

2 根据反向工程生成的物理数据模型创建逻辑模型

3 再根据逻辑模型生成Oracle数据库版本的物理模型

4 根据Oracle数据库版本的物理模型生成Oracle数据库创建脚本

5 按照Oracle命名规则和数据类型定义修改Oracle数据库创建脚本

6 在PL/SQL Developer中执行以检验其正确性

修改代码中的SQL语句

1 Sql Server中经常用方括号把表名和字段名括起来, 到Oracle中要把这些方括号都去掉

2 将参数变更前的"@"符号改为":"符号

3 将Sql Server专有的方法和函数替换成Oracle相应的方法和函数

4 在PL/SQL Developer中执行SQL语句以检验其正确性

转换过程中的常见问题

1 表名和字段名使用了Oracle中的关键字

2 Sql Server中的NVARCHAR数据类型可存4000个汉字, Oracle中的NVARCHAR/NVARCHAR2数据类型只能存2000个汉字

3 索引名称和外键名称超过了30个字符

以下数据库(可以理解为是DBMS核心组成的系统级数据库)是不能重命名的:

1) 主数据库(Master)

Master数据库为系统数据库,是SQL Server中最重要的数据库,包含用户登录标识、系统配置信息、初始化等系统级信息,用于控制整个SQL Server系统的运行。系统管理员应经常备份Master数据库。

2) 模板数据库Model

Model数据库是用户数据库的模板。当新建用户数据库时,系统会自动将model数据库的内容复制到用户数据库中,所以可以通过修改model数据库对新数据库建立一个自定义的配置。例如,如果在model数据库中新增加一个表,则以后创建的所有用户数据库中都会含有这个表。

3) 调度数据库(Msdb)

Msdb数据库存储作业、报警和 *** 作人员的 *** 作信息,主要被SQL Server Agente用于进行复制或调度作业、管理报警及排除故障等活动。

4) 临时数据库(Tempdb)

Tempdb数据库用于存储用户建立的临时表、临时触发器、用户声明的全局变量和用户通过游标筛选出来的数据,并为数据的排序提供一个临时性的工作空间。

如果重命名的是非上述的系统级数据库,则尝试把它原来的名字撤回去。

用如下语法:

1

alter table table_name rename table_new_name;

其中,table_name是旧表名,table_new_name是新表名。

mysql简介:

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。

MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

2转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。 3对此两种数据库进行 *** 作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10 4日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。 5在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。 所有的默认值都丢失了。主要是数字类型和日期类型所有now(),time(),date()要改成getdate()所有datediff('d',time1,time2)要改成datediff(day,time1,time2)所有datediff('ww',time1,time2)要改成datediff(week,time1,time2)所有datediff('d',time1,time2)要改成datediff(day,time1,time2)在mssqlserver中,有许多保留字,在access中是没有的,当你把数据导入到mssql的时候,问题就出来了。mssql在导入的时候,会自动给这些字段(包括数据库中的表名)加上“[字段名]”,因此,你必须修改你的脚本,把相应的字段名字(或者表名字)加上中括号,或改变字段名字为不是mssql的保留字在用access关于时间的使用,大家喜欢使用“selectfromaaaawhiletime=&now()”这样的sql语句,然而,在mssql中没有“now()”这个函数,而是使用“getdate()”,所以,所有的sql语句中的“now()”必须换成“getdate()”。日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQLSERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

1、新建一个表:student,用做示例,如图所示。

2、首先修改字段名称,使用sql语句:“execute sp_rename '表名字段名','新字段名'”,如图所示。

例子修改:execute sp_rename 'studentname','nameNew'

3、然后是修改类型,使用sql语句:“alter table‘表名’ alter column‘字段名称 类型’not null”。

例子修改:alter table student alter column nameNew int not null

扩展资料

在修改Sql Server表结构时,常用到Alter语句,把一些常用的alter语句列举如下。

1、向表中添加字段

Alter table [表名] add [列名] 类型

2、删除字段

Alter table [表名]  drop column [列名]

3、修改表中字段类型 (可以修改列的类型,是否为空)

Alter table [表名] alter column [列名] 类型

4、添加主键

Alter table [表名] add constraint [ 约束名] primary key( [列名])

5、添加唯一约束

Alter table [表名] add constraint [ 约束名] unique([列名])

6、添加表中某列的默认值

Alter table [表名] add constraint [约束名] default(默认值) for [列名]

7、添加约束

Alter table [表名] add constraint [约束名] check (内容)

8、添加外键约束

Alter table [表名] add constraint [约束名]  foreign key(列名) referencese 另一表名(列名)

9、删除约束

Alter table [表名] drop constraint [约束名]

10、重命名表

exec sp_rename '[原表名]','[新表名]'

11、重命名列名

exec sp_rename '[表名][列名]','[表名][新列名]'

12、删除主键,以及主键上的索引

alter table table_name drop constraint clusteredName

参考资料:

百度经验-sql server怎么用语句更改字段名称和类型

SQL

Server中修改字段名的语句是:

1

sp_rename

'表名旧字段名','新字段名'

如,有test表如下,其中包含id和name字段,现在要将name字段改名为snmae。

语句如下:

1

sp_rename

'testname','sname'

再看test表结构,修改成功。

注意:

更改对象名的任一部分都可能会破坏脚本和存储过程。

以上就是关于如何将应用程序从SqlServer迁移到Oracle全部的内容,包括:如何将应用程序从SqlServer迁移到Oracle、sqlserver 数据库 修改了一个数据库的名字结果看不到实例下面任何数据库了、sql plus如何修改数据库的表名字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/10201544.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存