国产数据库---Oracle迁移至GBase8a---第三章---操作符

  1. 操作符
    1. 综述

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

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

    1. 算术操作符

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

        1. +

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

GBase 8a 替代: +

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

GBase 8a 替代: -

        1. *

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

GBase 8a 替代: *

        1. /

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

GBase 8a 替代: /

    1. 连接操作符

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

        1. ||

字符和CLOB值的连接符。

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

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

    1. Multiset 操作符

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

    1. 集合操作符

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

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

    1. 操作符优先级

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

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

Oracle

GBase 8a

一元 +,  一元 - , PRIOR,CONNECT_BY_ROOT  

一元 +,一元 -  

*, /

*, /

二元 +,二元 -, ||

二元 +,二元 -

SQL 谓词

SQL谓词

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值