大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 数据库 -> ORACLE -> 从Oracle迁移到SQL Server的陷阱

从Oracle迁移到SQL Server的陷阱

时间: 2021-08-13 作者:daque

在把oracle查问变换为sql server的功夫要更加留心少许不简单提防到的题目。咱们领会,t-sql是sql server的谈话引擎,而oracle的谈话引擎却是plsql。这两种查问谈话都对ansi sql-92规范举行了扩充以供给特殊的扶助力度。你所创造的运用步调简直都要用到那些弥补个性。正文就对最常用的、非规范的oracle扩充举行了证明,同声还要引见下怎样对那些扩充举行变化以用在sql server情况下。    列的采用   用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’   贯穿   oracle用|| 标记动作贯穿符,而sql server的贯穿符是减号:+ 。   oracle查问如次所示:   select ‘name’ || ‘last name’ from tablename   对应的sql server查问如次所示:   select ‘name’ + ‘last name’   数字选择   oracle数据库内有一个trunc因变量,该因变量归来m位十进制数的n位;即使简略m则n即是0位。m的值不妨为负,表白截去少量点左边m位数字。   在sql server下不妨用round大概floor。   以次是oracle查问:   select trunc(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) )   数字变换   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 characters"   日子   之上两种体例都具备各自的暂时日子和功夫方法。   oracle博得日子和沿用如次办法:   sysdate   sql server则是如许的:   getdate()   你不妨用百般语法操纵日子。以次的代码对oracle日子值中的月份举行了方法安排(归来日子再加上n月):   select add_months(sysdate,12) from dual   sql server则是如次实行一致功效的:   select dateadd(mm,12,getdate())   数据的减法也各别。以次代码在oracle市直接对数据举行减法操纵:   select sysdate -add_months(sysdate,12) from dual   sql server则是如许做的:   select datediff(dd, getdate(),dateadd(mm,12,getdate()))

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.