• 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函数可指定字符

  • 相关阅读:
    HO引擎近况20210912
    查询超时问题的处理
    ubuntu根据关键词批量杀进程
    创建notebook适用的虚拟环境
    信赖域策略优化(Trust Region Policy Optimization, TRPO)
    强化学习(Reinforcement Learning)
    生成对抗网络(GAN与W-GAN)
    卷积神经网络CNN
    循环神经网络RNN
    PyTorch自动求导
  • 原文地址:https://www.cnblogs.com/bigmonk/p/12750801.html
Copyright © 2020-2023  润新知