• 数据库迁移-国产化-Oracle迁移至GBase8a(操作符)


    操作符

    综述

    Oracle 内置的 SQL 操作符与 GBase 8a 基本上都可以对应上。这些操作符可以分为 5 类。算术操作符、连接操作符、分级查询操作符、Multiset 操作符、 集合操作符。

    Oracle 10g 支持17个操作符,可以使用他们构建表达式。GBase 8a 支持的操作符功能和 Oracle 是一样的。但是有一些例外,例如 Oracle || (连接), 如果 GBase 8a 启动时使用 –ansi 选项,则支持 || 作为连接符,其他情况下 || 必须使用 GBase 8a 函数 CONCAT来代替。

    算术操作符

    每一个 Oracle 的算术操作符都有一个同样的 GBase 8a 操作符对应,在迁移的时候不需要进行修改。

    +

    在一元操作时,需要一个真实的数字或时间的表达式,在二元操作时需要两个数字或时间表达式。

    GBase 8a 替代: +

    在一元操作时,需要一个真实的数字或时间的表达式,在二元操作时需要两个数字或时间表达式。

    GBase 8a 替代: -

    *

    二元操作符,乘法的数学表达式。

    GBase 8a 替代: *

    /

    二元操作符,除法的数学表达式。

    GBase 8a 替代: /

    连接操作符

    如果 GBase 8a 启动时使用 –ansi 选项,则支持 || 作为连接符,这种情况下在迁移时不需要作改变。在默认的启动模式下,需要将 || 用 CONCAT('string1', 'string2') 来替代。Oracle 同样也有 CONCAT 函数,作用和 GBase 8a 的一样。

    ||

    字符和CLOB值的连接符。

    GBase 8a 替代:(--ansi 模式): ||

    GBase 8a 替代:(默认模式): CONCAT('string1', 'string2'),使用concat函数是正确的、完备的替换方式。

    Multiset 操作符

    Oracle支持MULTISET EXCEPT, MULTISET INTERSECT, 和 MULTISET UNION 等MultiSet操作符,不被 GBase 8a 不支持,也没有可替代的其它操作符。

    集合操作符

    Oracle 支持UNION、UNION ALL、INTERSECT和MINUS 四种集合操作符。

    GBase 8a 完全支持这四种集合操作符,功能表现与Oracle中的同名操作符完全相同,在迁移的过程中不做修改。

    操作符优先级

    在一个 SQL 表达式中如果存在多个操作符,数据库系统会按一定的顺序来执行他。Oracle 在执行对操作符的使用采取优先级从高到低的原则。同级操作符,遵循从左向右原则。圆括号中的操作优先与括号外的操作。GBase 8a 同样遵守这些规则。

    下表从高到低列出了 Oracle 和 GBase 8a 的操作符优先级。在这个表中没有包括 INTERSECT, MINUS, UNION ,联合操作都相当与原子数据值。在Oracle 中所有的集合操作符都拥有相同的优先级。

    Oracle

    GBase 8a

    一元 +,  一元 - , PRIOR,CONNECT_BY_ROOT  

    一元 +,一元 -  

    *, /

    *, /

    二元 +,二元 -, ||

    二元 +,二元 -

    SQL 谓词

    SQL谓词

  • 相关阅读:
    【iOS】多线程梳理
    【Kotlin实战】-01-Kotlin基础
    6数据层相关框架-基本
    SQL 笔记
    Linux必会100个命令(五十四)lsof命令
    Korzh EasyQuery .Net for ASP.Net 7.2.X Crack
    R语言时间序列数据提取:使用xts包的first函数提取时间序列中最前面两周的数据(first 2 week)
    NODE基于express 框架和mongoDB完成session认证 和图片上传删除等功能
    ssm青少年航天知识科普网站-计算机毕设 附源码59487
    Biotin-NHS ester,生物素-NHS,35013-72-0
  • 原文地址:https://blog.csdn.net/huixinhuiyismile/article/details/126298112