YashanDB与Oracle兼容性说明

本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E4%BA%A7%E5%93%81%E6%8F%8F%E8%BF%B0/%E4%B8%8EOracle%E5%85%BC%E5%AE%B9%E6%80%A7%E8%AF%B4%E6%98%8E.html

YashanDB在SQL语法、表达式运算、FILTER CONDITION、数据类型、内置函数、系统视图和PL等基本功能上均与Oracle数据库兼容,数据库管理和开发人员不需要花费大量的时间去学习新知识,在已交付特性上直接查阅Oracle相关文档,也可流畅地操作使用YashanDB,实现从Oracle数据库到YashanDB的平滑迁移。

在其他某些功能上YashanDB会与Oracle数据库的表现有所差异或者暂时没有进行兼容,这可能是因为:

  • YashanDB与Oracle数据库的底层架构、产品形态等并不相同。
  • YashanDB摒弃了一些旧的不符合当前主流业务框架的方法,并增加了自己的特性。

本文将从如下方面具体说明,在单机部署和行式存储模式下,YashanDB对Oracle数据库的兼容情况:

  • SQL语法
  • 表达式运算
  • FILTER CONDITION
  • 数据类型
  • 内置函数
  • PL
  • 系统视图
  • 字符集
  • SQL引擎
  • 数据库安全
  • 工具兼容
  • 其他兼容

SQL语法


YashanDB支持Oracle数据库中主流的SQL语法,其他少数因功能性缺失导致的不兼容将报语法不支持错误,此时应联系我们的技术支持提供变通方案。 更多SQL语法详细说明请查阅开发手册SQL语句文档。

(1)DML类

SELECT

  • 支持大部分查询功能,包括单、多表查询,子查询,内连接,半连接,外连接,分组及聚合,层次查询等
  • 支持UNION、UNION ALL、INTERSECT、MINUS等集合操作
  • 支持如下方式查看执行计划:
    • EXPLAIN
    • AUTOTRACE
  • 支持随机抽样查询能力
  • CTE支持递归功能

INSERT

  • 支持单行、多行插入,同时支持指定分区插入
  • 支持INSERT INTO SELECT语句
  • 支持INSERT ALL语句
  • 支持单表和多表插入

UPDATE

  • 支持单列和多列的更新
  • 支持使用子查询

DELETE

  • 支持单表和多表的删除
  • 支持使用子查询

(2)DDL类

YashanDB兼容Oracle数据库大部分的对象及对象管理操作,包括:

  • HEAP表:
    • CREATE TABLE/CREATE TABLE AS
    • ALTER TABLE
    • DROP TABLE
    • TRUNCATE TABLE
  • 临时表
    • GLOBAL TEMPORARY TABLE
    • PRIVATE TEMPORARY TABLE
  • 分区表
    • 支持RANGE/INTERVAL/LIST/HASH类型分区
    • 支持ADD|DROP|TRUNCATE PARTITION
    • 支持分区行迁移
    • 支持SPLIT分区
    • 二级分区
  • 外部表
    • 支持创建目录,CREATE DIRECTORY
    • 支持创建和删除外部表
  • 约束
    • 包括in_line约束/out_of_line约束
    • 支持UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、(NOT) NULL类型约束
  • 视图
    • CREATE VIEW/CREATE OR REPLACE FORCE VIEW
    • DROP VIEW
    • 视图支持SELECT/INSERT/UPDATE/DELETE
  • 物化视图
    • CREATE MATERIALIZED VIEW
    • ALTER MATERIALIZED VIEW
    • DROP MATERIALIZED VIEW
    • 支持本地物化视图,不支持远程物化视图
  • BTree索引
    • 包括全局索引和本地(LOCAL)索引
    • 包括唯一(UNIQUE)索引和非唯一索引
    • 包含反向键索引和函数索引
    • 支持对索引REBUILD|UNUSABLE|COALESCE|PARALLEL|RENAME
    • 支持在相同列上创建多个索引
  • 同义词
    • 包括私有同义词和公共(PUBLIC)同义词
  • 序列
    • 包括升序序列和降序序列,可指定CYCLE|NOCYCLE、CACHE|NOCACHE、ORDER|NOORDER
    • 序列支持NEXTVAL和CURRVAL
  • DBLINK
    • 支持Oracle到YashanDB、YashanDB到Oracle和YashanDB到YashanDB的远程连接
    • 支持PUBLIC和PRIVATE模式的LINK
    • 支持表和视图的连接
    • 支持在YashanDB创建远端对象的同义词、在YashanDB上调用远端存储过程和查看LOB数据

(3)HINT

YashanDB支持使用HINT并采用了Oracle的HINT语法,可实现join方式、join order、table scan、index scan等的指定能力。关于HINT的详细说明,请查阅开发手册hint文档。

表达式运算


YashanDB包含了主流的计算框架实现对表达式的运算,此外,Oracle本身由于没有布尔类型(只在其PL中支持)需要使用其他数据类型替代运算,YashanDB则实现了直接的布尔型表达式运算。详见下表:

表达式运算类型 YashanDB Oracle数据库
二元运算加法 支持 支持
二元运算减法 支持 支持
二元运算乘法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值