zoukankan      html  css  js  c++  java
  • Oracle转SqlServer

     基础数据所对应的类型不同

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

       表的结构          

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

        Oracle的to_date,to_char方法

        在转Oracle数据库的时候这两个方法出现了很多次,看他们的名字就知道是干什么的,Sqlserver中没有这样的方法,但是有conver,cast方法这两个方法可以实现Oacle两个方法的所有功能

        Oracle的NVL方法可以用isnull代替

        在Oracle中子查询语句可以有order by,而在sqlserver需要添加top()函数    

    Oracle比sqlserver的优势

        我个人觉得oracle的优势在他的图形用户界面,虽然长相不好,但却实用,如果有失误的操作还能够rollback,导出数据时也很方便,在把oracle数据迁移到sqlserver时只要关注两个数据库之间数据类型的差异,不用担心oracle的数据问题,可以一键查询提出成文件,而sqlserver操作起来反而复杂,我还没有找到导出sqlserver sql文件的方法。

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

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

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

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

        

  • 相关阅读:
    HDFS的滚动升级: Rolling Upgrade
    HDFS自定义小文件分析功能
    HDFS自定义小文件分析功能
    HDFS Federation机制
    HDFS Federation机制
    Confluence 6 配置一个数据源连接
    Confluence 6 在数据源连接中启用校验查询
    Confluence 6 从你的 JDBC 连接中直接启用校验查询
    Confluence 6 针对你的数据库类型确定校验 SQL
    Confluence 6 从关闭的连接中恢复
  • 原文地址:https://www.cnblogs.com/saozhou/p/12020223.html
Copyright © 2011-2022 走看看