Oracle转SqlServer

 基础数据所对应的类型不一样sql

   在Oracle中有一些基础类型与Sqlserver中名字同样,可是所存储的数据格式不一样,Date类型在Oracle中精确到秒,在Sqlserver中只能精确到天数据库

   表的结构          oracle

    Oracle中全部的表都有一个共同的字段,rowid这是在物理上存在的,记录了每一条记录的行位置,rownum 是逻辑上的,根据排序方式的不一样会出现不一样的rownum,由于Oracle的这个特性,常常在进行一些crud操做的时候会经过rowid来进行,致使在转数据库的时候会遇到各类麻烦,因此我建议各位无论是使用哪种数据库最好是使用标准sql,而且不要太依赖某种数据库的特性。我开始是想经过row_number()加with as 去代替rowid,可是总会出现一些奇怪的问题,你前一次查询的id,从新进入数据库操做的时候改变的是另一条记录,最后的解决方式我把每一张表都添加上了rowid函数

    Oracle的to_date,to_char方法sqlserver

    在转Oracle数据库的时候这两个方法出现了不少次,看他们的名字就知道是干什么的,Sqlserver中没有这样的方法,可是有conver,cast方法这两个方法能够实现Oacle两个方法的全部功能设计

    Oracle的NVL方法能够用isnull代替server

    在Oracle中子查询语句能够有order by,而在sqlserver须要添加top()函数    排序

 

Oracle比sqlserver的优点it

    我我的以为oracle的优点在他的图形用户界面,虽然长相很差,但却实用,若是有失误的操做还可以rollback,导出数据时也很方便,在把oracle数据迁移到sqlserver时只要关注两个数据库之间数据类型的差别,不用担忧oracle的数据问题,能够一键查询提出成文件,而sqlserver操做起来反而复杂,我尚未找到导出sqlserver sql文件的方法。ast

数据库转换须要注意的几个点:

  1:基础数据之间的差别,在不一样的数据中相同名字的数据类型可能存的值存在某些差别,我也没有弄清有哪些类型,可是这是一个须要注意的点

  2: 某些数据库独有特性在转换时要面向总体去设计

3:不一样数据库所用sql也有不一样,但总能找到替代的方法,必定要用心

相关文章
相关标签/搜索