• 数据库迁移-国产化-Oracle迁移至GBase8a(谓词)


    谓词

    综述

    Oracle 和 GBase 8a 都可以很好的支持 SELECT 、 UPDATE、DELETE 声明中的 WHERE 字句和 HAVING 字句。其中REGEXP_LIKE(string_表达式, pattern)可以使用 GBase 8a 的expr REGEXPpattern表达式来代替,但 REGEXP_LIKE(string_表达式, pattern, match_parameter)等特殊的函数或谓词就不被GBASE 8A支持。

    对于这些谓词我们从下面几个方面来进行介绍:

    条件比较操作符、存在条件谓词、浮点谓词、内部条件谓词、is/member、空条件谓词、模式匹配谓词、范围条件、 XML 条件。

    逻辑谓词

    逻辑谓词的作用是结合两个条件,返回一个判断结果。Oracle有AND、OR、NOT个逻辑谓词,GBase 8a 完全支持这三个谓词,且含义与Oracle中完全相同,在迁移时不用改变。

    比较谓词

    比较谓词用于对两个表达式进行比较。Oracle 支持6个比较谓词,分别为=、<>、<、<=、>和>=, GBase 8a 支持这些比较谓词,且含义与Oracle完全相同,在迁移的时候不做改变。

    存在谓词

    存在谓词用于测试子查询中的行是否存在。Oracle 支持两个存在谓词,分别为EXISTS和NOT EXISTS,GBase 8a 支持这两个存在谓词,含义与Oracle中完全相同,在迁移时不做改变。

    浮点谓词

    浮点谓词用来判断表达式的结果是不是无穷大或是不是数字。Oracle 支持 4 个浮点谓词,分别是 INFINITE, IS NOT INFINITE, IS NAN, 和 IS NOT NAN 。

    GBase 8a 中不支持浮点谓词。

    In 谓词

    In 谓词测试指定的值是否可以在集合中找到。Oracle 支持2 个 In 谓词,分别为IN和NOT IN,GBase 8a 支持这两个In 谓词,且含义与Oracle相同,在迁移的时候不做改变。

    判断/成员谓词

    判断/成员谓词可以测试一个值是否是一个特殊的形式。Oracle 支持12 个判断/成员谓词,包括 IS [NOT] A SET, IS ANY, IS [NOT] EMPTY, IS [NOT] OF type, IS PRESENT, [NOT] MEMBER, [NOT] SUBMULTISET 。

    GBase 8a 不支持判断/成员谓词。

    Null判断谓词

    Null 判断谓词用来测试表达式是否为 NULL 值。Oracle 支持2个 null 谓词,分别为IS NULL 和IS NOT NULL。

    GBase 8a 支持这两个谓词,且与Oracle中的同名谓词含义相同,在迁移时不做改变。

    模式匹配谓词

    模式匹配谓词用来测试一个值是否匹配一个指定的模式。Oracle 支持9 个模式匹配谓词。

    GBase 8a 仅支持LIKE 和 NOT LIKE 两个模式匹配谓词,Oracle中支持的其它模式匹配谓词在GBase 8a 中不被支持。

    范围表达式

    范围表达式测试在一个范围内包含的值,Oracle 支持2个范围表达式,分别为BETWEEN 和 NOT BETWEEN。

    GBase 8a 支持这两个范围表达式,且与Oracle中含义相同,在迁移时不做改变。

    XML操作谓词

    GBase 8a 中不支持XML表达式,也不能对XML文件进行处理,因此GBase 8a 中不支持XML操作谓词。

    谓词优先级

    在同一条 SQL 语句中可能存在多个条件和谓词,处理这些条件和谓词数据库系统有相应的顺序。对于条件的执行顺序,遵守从高到低的原则。对于表达式遵循从左向右执行的顺序。括号可以提高表达式的执行权限。Oracle 中圆括号内的表达式先于括号外的表达式执行。GBase 8a 同样遵守这些规则。

    下表从高到低的列出了 Oracle 和 GBase 8a 谓词的优先级。

    ORACLE

    GBase 8a

    NOT

    比较谓词 (= <> < <= > >=)

    比较谓词(= <> < <= > >=), IS [NOT] NULL, LIKE, [NOT] IN, REGEXP

    IS [NOT] NULL, LIKE, [NOT]BETWEEN, [NOT] IN, EXISTS,IS OF type

    [NOT] BETWEEN

    NOT

    AND

    AND

    OR

    OR

  • 相关阅读:
    6款主流PDF编辑器测试,快来看看哪一款最适合你吧
    【C语言】动态内存管理
    5.git远程仓库的创建(http,ssh)
    网络安全从业人员能力图谱
    Spark+Hadoop环境搭建
    打工毁一生,创业治百病,零经验零成本创业三个月收益10W+
    人工智能与电力:自动化、集中化和规模化的伦理挑战
    JAVA计算机毕业设计基于的智慧小区Mybatis+系统+数据库+调试部署
    JavaScript面向对象:面向对象案例
    java基本数据类型的包装类[34]
  • 原文地址:https://blog.csdn.net/huixinhuiyismile/article/details/126298234