
迁移主要有两个工作:
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中修改字段名的语句是:
1
sp_rename
'表名旧字段名','新字段名'
如,有test表如下,其中包含id和name字段,现在要将name字段改名为snmae。
语句如下:
1
sp_rename
'testname','sname'
再看test表结构,修改成功。
注意:
更改对象名的任一部分都可能会破坏脚本和存储过程。
以上就是关于如何将应用程序从SqlServer迁移到Oracle全部的内容,包括:如何将应用程序从SqlServer迁移到Oracle、sqlserver 数据库 修改了一个数据库的名字结果看不到实例下面任何数据库了、sql plus如何修改数据库的表名字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)