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

  • 相关阅读:
    axios跨域问题(包括开发环境和生产环境)
    vue高亮一级、二级导航
    vue配置路由时报错 Error in render: "RangeError: Maximum call stack size exceeded"
    win10使用L2TP连接失败,报远程服务器未响应错误解决办法,亲测可用!
    pywinauto教程
    Python结合Pywinauto 进行 Windows UI 自动化
    Pywinauto自动化操作PC微信提取好友微信号
    Debian9 配置kali(xfce4、Metasploit、wireshark)
    Kali开启ssh
    从域环境搭建到域渗透
  • 原文地址:https://www.cnblogs.com/bigmonk/p/12750801.html
Copyright © 2011-2022 走看看