SQLserver与Oracle数据库类型区别以及迁移计划(一).doc

上传人:wux****ua 文档编号:8334682 上传时间:2020-03-28 格式:DOC 页数:6 大小:49KB
返回 下载 相关 举报
SQLserver与Oracle数据库类型区别以及迁移计划(一).doc_第1页
第1页 / 共6页
SQLserver与Oracle数据库类型区别以及迁移计划(一).doc_第2页
第2页 / 共6页
SQLserver与Oracle数据库类型区别以及迁移计划(一).doc_第3页
第3页 / 共6页
点击查看更多>>
资源描述
SQL_server_与Oracle数据库类型区别以及迁移计划一、 数据类型区别: 当数据从SQL SERVER 向ORACLE10g迁移时,可以做如下调整:Sql server Oracle 10g数字类型decimal (P, S)NUMBER(P, S)numeric (P, S)NUMBER(P, S)float(N)NUMBER(N)real(N)NUMBER(N)intNUMBERsmallintNUMBERtinyintNUMBERmoneyNUMBER19,4smallmoneyNUMBER19,4字符类型char(N)CHAR(N)varchar(N)VARCHAR2(N)nchar(N)CHAR(N)nvarchar(N)VARCHAR2(N)日期时间类型datetimeTIMESTAMP(6)smalldatetimeTIMESTAMP(6)其它textCLOBimageBLOBbitNUMBER(1以上详细说明: Orace:主要支持char ,varchar2,long,number,datetime,raw,long raw,clob,blob,bfie 前面三个是Character数据类型,varchar2支持可变长度的字符串,long支持可 变长度的字符数据,raw,long raw用于存储二进制数据,long raw 可变长度 最后三个是大对象(lob)数据类型,存储非结构化的信息,例如声音剪辑,视频文件 CLOG表示Character Lob,可以存储大量的字符数据,它对于存储非结构化的XML 文档非常有用。BLOG表示Binary LOG,此数据类型可以存储大型二进制对象,如 图形、视频剪辑,声音文件等 支不支持,money,货币 Sql server 主要支持的文本类型char ,varchar,nchar,nvarchar,text,ntext,image,货币类型 Money,二进制 binary,varbinary二、概念上的区别: 1.Oracle 是一种对象关系数据库管理系统(ORDBMS),而Sql server 只是关系型数据库管理系统(RDBMS). 2.Oracle使用Internet文件系统,该系统基于Java的应用程序,可以使数据库基于成为Internet的开发平台;Sql server 是基于windows 3.Orace 主要的三类文件是:数据文件,控制文件,恢复日志文件 Sql server:主要数据文件(必须有且只能有一个),次要数据文件以及日志文件 4.两者支持的命令类别差不多,数据定义语言,数据操纵语言,事务处理控制语言, 数据控制语言.在Oracle中,在事务控制语言中除了commit,rollback等还多了一个 Savepoint,设置保存点。 5.oracle sql的扩展叫PL/SQL,主要的结构化查询工具有sql*plus,isql*plus,pl/sql等 Ms sql的扩展叫Transact-SQL,主要的结构化查询工具就是自带的查询分析器二、 语法区别:Oracle和SQL Server的语句区别1、 列的选择 用plsql执行数据查询的时候,from字句是必须的,这同sql server 的要求是一样的。 Select 语句必须选择针对的数据表。在oracle数据库内有一种特殊的表dual,dual表由oracle联通数据字典一同创建,所有的用户都可以用名称dual访问该表。这个表只有一列dummy,该列定义为varchar2(1)类型,有一行值x,从dual表选择数据常被用来通过select语句计算常数表达式,由于dual只有一行数据,所以常数只返回一次。Oracle 下的dual 查询如下所示: Select x from dual ; 而对等的sql server 查询则如下:Select x;2、 连接 Oracle用| 符号作为连接符,而SQL server的连接符是加号:Oracle查询如下所示:Select Name|lastNamefrom tableName; 对应的SQL Server 查询如下所示:Select Name+LastName;3、 数字取舍 Oracle数据库内有一个trunc函数,该函数返回m位十进制数的n位;如果是省略m则n就是0位。m的值可以为负,表示截去小数点左边m为数字。 在SQL Server 下可以用Round或者Floor. 以下是Oracle查询: Select trunk(15.79,1)”Truncate” from dual; 以下sql server版本:Select round(15.79,0)rounded, Round(15.79,0,1)truncated Select floor(round(15.79,0),floor(round(15.79,0,1)4、数字转换Oracle的TO_CHAR函数可以把n位NUMBER数据类型转换为VARCHAR2 数据类型,同时采用可选的数字格式。SQL Server则通过STR函数返回数字转换之后的字符数据。不过,该函数不具方便的Format参数。Oracle查询如下:select to_char(123.45 ,99999999999999) from tab select to_char(expiry_date,ddmonYYYY) from tab以下是SQL Server版本的查询:Select str(123.45, 14) select str(round(123.455 , 2),12,2)select cast(replace(convert(varchar(12) , expirydate, 106 ), , ) as varchar(9)length和len以下是Oracle的查询:Select length(SQLMAG) Length in characters from dual;以上查询在SQL Server下是这样写的:Select len(SQLMAG) Length in characters5、日期Oracle取得日期和采用如下方式:sysdateSQL Server则是这样的:getdate()你可以用各种语法操作日期。以下的代码对Oracle日期值中的月份进行了格式调整(返回日期再加上n月):Select add_months(sysdate,12) from dualSQL Server则是如下完成同等功能的:Select dateadd(mm,12,getdate()数据的减法也不同。以下代码在Oracle中直接对数据进行减法操作:Select sysdate -add_months(sysdate,12) FROM dualSQL Server则是这样做的:Select datediff(dd, GetDate(),dateadd(mm,12,getdate()三、 从SqlServer迁移到Oracle一、计划一数据库: Sql Server 2008, Oracle 10g 工具: Sybase PowerDesiner 12 试用版, PL/SQL Developer 7.1.5 (1)、 迁移主要有两个工作: 1. 根据Sql Server数据库生成创建Oracle数据库的脚本 2. 修改代码中的SQL语句 (2)、根据Sql Server数据库生成创建Oracle数据库的脚本 1. 用PowerDesiner将Sql Server数据库反向工程生成物理数据模型 2. 根据反向工程生成的物理数据模型创建逻辑模型 3. 再根据逻辑模型生成Oracle数据库版本的物理模型 4. 根据Oracle数据库版本的物理模型生成Oracle数据库创建脚本 5. 按照Oracle命名规则和数据类型定义修改Oracle数据库创建脚本 6. 在PL/SQL Developer中执行以检验其正确性(3)、修改代码中的SQL语句 1. Sql Server中用方括号把表名和字段名括起来, 到Oracle中要把这些方括号都去 掉 2. 将参数变更前的符号改为:符号 3. 将Sql Server专有的方法和函数替换成Oracle相应的方法和函数 4. 在PL/SQL Developer中执行SQL语句以检验其正确性(4)转换过程中的常见问题 1. 表名和字段名使用了Oracle中的关键字 2. Sql Server中的NVARCHAR数据类型可存4000个汉字, Oracle中的 NVARCHAR/NVARCHAR2数据类型只能存2000个汉字 3. 索引名称和外键名称超过了30个字符 4. PowerDesigner生成的脚本, 表名和字段名都加了引号, 要去掉 二 计划二(1)、可以利用hibernate 数据库持久化框架,通过映射创建数据库脚本(其中修改部hbm.xml文件以及相关配置文件即可),此做法,是项目程序使用hibernate之后,使用该方法,及实现快速迁移(2)、迁移时候,要对hibernate映射文件,进行正确的配置,方可进行映射操作
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!