zoukankan      html  css  js  c++  java
  • Oracle_Oracle与SqlServer异同点

    1、数据库差异

    SqlServer可拥有多个数据库;自带可视管理工具SQL Server Management Studio。

    Oracle只有一个数据库,但可以创建多个用户;只有SqlPlus,需额外安装PL/SQL Developer。

    2、字段差异

    数值

    numeric(m,n):m表示有效数字的总位数(最大为38位),n表示小 数位数。 --SqlServer

    number(m,n):m表示有效数字的总位数(最大为38位),n表示小 数位数。 --Oracle

    字符串

    nvarchar(n) --SqlServer

    varchar2(n) --Oracle

    大文本

    nvarchar(max) 存储,32位SQL Server上其最大长度为2GB --SqlServer

    clob 字符型大型对象(Character Large Object),最大容量为4GB --Oracle

    3、创建临时表

    分为会话级临时表和事务级临时表

    会话,即session,当你使用工具如sqlplus或者toad执行连接,连接到某个数据库的时候,就开启了一个会话,直到你关闭这次连接,这个会话才算结束。

    事务,即transaction,是一个由多条SQL语句组成的工作逻辑单元,这些语句要么全部执行成功,要么全部不执行。只有commit,rollback,或者关闭工具的情况下,事务才会结束。当一个事务结束之后,下一个可执行的SQL语句自动开启一个新的事务。

    (1)基于会话的全局临时表特征:基于会话的全局临时表则是session链接退出后,临时记录自动删除,无需手动去操作,针对不同session访问全局临时表,看到的结果是不同。

    (2)基于事务的全局临时表在commit或者session链接退出后,临时表记录自动删除。

    创建会话级临时表

    保留行

    CREATE Global Temporary TABLE TableName ON COMMIT PRESERVE ROWS AS
    SELECT ...
    

    创建事务级临时表

    CREATE Global Temporary TABLE TableName ON COMMIT DELETE ROWS AS
    SELECT ...
    

    4、不支持IIF函数

    可使用decode函数或者Case When代替

    SUM(IIF(BHYY = '41', 1, 0))   --Sqlserver
    
    SUM(decode(BHYY ,'41', 1, 0)) --Oracle
    
    SUM(case when BHYY = '41' then 1 else 0 end) --Oracle
    

    5、ltrim支持指定字符

    SqlServer中ltrim函数只支持去除空格

    Oracle中ltrim函数可指定字符

  • 相关阅读:
    FOR XML PATH应用之用一条SQL语句横向合并结果行
    配置SharePoint 2007 过程中引发Microsoft.SharePoint.Upgrade.SPUpgradeException 异常(未能创建配置数据库)的一个解决方法
    Android仿360手机卫士九宫图
    第一个 Android 程序
    图解SharePoint 2010 安装过程
    在Windows Server 2008 R2(64位)上安装SharePoint 2007出现的一个错误的解决方法
    用Hint取代Messagebox来提示错误信息
    近期阅读计划
    测试下外链图片
    淘宝DBA的技术要求
  • 原文地址:https://www.cnblogs.com/bigmonk/p/12750801.html
Copyright © 2011-2022 走看看