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也有不同,但总能找到替代的方法,一定要用心

原文地址:https://www.cnblogs.com/saozhou/p/12020223.html

时间: 2024-10-07 22:59:26

Oracle转SqlServer的相关文章

你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗

ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性:    Oracle.MYSQL与DB2可在所有主流平台上运行:    SQL Server只能在Windows下运行: --安全性:    Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证:    这方面证明了Oracle的安全性是高于SQL Server的: --数据类型.函数.sql语句:    oracle中有复合数据类型,sql server中没有: 总之:   

MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能

网上看见了好多例子都基本上是一样的,没有过多的解释,对于一个初学MySQL来说有点难,我把部分转摘过来如下 原文:http://www.cnblogs.com/buro79xxd/archive/2012/08/29/2662489.html 要求目标:1.确定需求: 根据部门来分组,显示各员工在部门里按薪水排名名次. 创建表格:2.来创建实例数据: drop table if exists heyf_t10; create table heyf_t10 (empid int ,deptid i

Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-31 10:46:48,请知悉. 所需的 jar 包下载链接为:http://yunpan.cn/cKEWbBntAjtKy  访问密码 bd58 以下为初学 Java 常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码,敬请参阅! MyS

oracle与sqlserver利用函数生成年月日加流水号

最近在做oracle相关的项目,刚接触oracle,与sqlserver语法上还是有区别的 sqlserver : 示例:FX+当前年月日+00001 如下图流水号实力所示 原理: 首先 'FX'是固定的,获取当前年月日方法在sqlserver中分别是: 1.年:YEAR(GETDATE()) 2.月:month(getdate()) 3.日:DAY(GETDATE()) 其次最主要的是流水号自动加1,主要思路是获取到当前表中FxNum最大的数(后6位最大的数),并且用right函数获取后6位并

oracle与sqlserver部分区别

oracle和sqlserver的区别:1,执行修改操作要接commit,不然数据仅仅只是查看,并不是提交数据2,oracle不能使用select 字段 这种查看方式查看数据:3,oracle存储过程可以先写包,相当于声明数据类型,然后实现sql这种4,oracle表里自增是用序列,(理解:相当于声明一个唯一key值自增,查出一次后就相当于使用了)5,oracle的赋值操作 变量:=数值 这种, 6,oracle不能像sqlserver一样用@iddent(不记得了)insert之后的值,使用方

采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库

都说Hibernate框架的使用可以很容易的让你的研发平台支持多种不同类型的数据库,但实践表明,这里的“容易”,是相对的. 想让研发平台支持多种数据库,并不是一件简单的事,也可以这么说:并不是只要使用了Hibernate框架就能实现的. 下面记录一下我做这件事情的过程和一些感悟. 当我接到该任务时,我先大致的理了一下思路: 要完成迁移,总体上有2大块工作要做,分别是:数据库层面的迁移  和  平台底层代码的改造 一.数据库层面的迁移过程: 1.通过sqlServer Studio2008 工具将

Oracle/Mysql/SqlServer函数区别

mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36|  分类: Mysql技术 |  标签:mysql  sqlsever  oracle  函数   |举报 |字号大中小 订阅 Sql代码 1.类型转换 --Oracle select to_number('123') from dual; --123; select to_char(33) from dual;  --33; select t

Oracle 与 SqlServer 的区别浅析总结

我主要用过的数据库为Oracle10g和SqlServer2008,通过实际运用和查阅资料整理如下: 主题 Oracle 10g SQLServer 2008 存储过程格式 Create Or Replace Procedure 存储过程名 (参数列表) IS Begin ---存储过程内容 End 存储过程名; Create Procedure 存储过程名  (参数列表) AS Begin --存储过程内容 End 存储过程参数 1.指定参数类型,但不指定长度; 2.在参数及类型间要加入输入输

Mysql、Oracle、SqlServer的JDBC连接实现和对比(提供驱动包)

首先,我们需要准备数据库连接所需的jar包.目前mysql的驱动包可能比较好找,但是oracle和sqlserver的有很多,要找到能用的要花一点点心思,这里直接把下载地址和版本发送出来. Mysql: 驱动程序包:mysql-connector-java-5.1.38.jar 下载地址:http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38     驱动:com.mysql.jdbc.driver     url: