用户体验 | Oracle与崖山数据库多种类型兼容性对比验证测试

前言

YashanDB个人版开放后,陆续获得一大波「产品体验官」的关注和体验反馈,小崖在此把优秀的用户投稿文章分享给大家~今天分享的用户文章是《Oracle与崖山数据库多种类型兼容性对比验证测试》(作者:尚雷),欢迎大家一起交流。

以下为评测全文:

最近有款国产数据库真的很火,火到什么程度呢,很多数据库行业的大佬都在多种场合讨论它、墨天轮社区里的很多小伙伴也在群里分享使用的感受、很多微信公众号也都是它的新闻。

是哪款数据库能这么火呢,当然是崖山数据库了,对,就是这款名叫YashanDB的数据库。

我之前曾有幸参加了崖山数据库的YCA认证培训,并通过了YCA的认证。

自从那以后,也一直非常关心崖山数据库的发展。

做为一名DBA,在进行去O国产数据库选型时,最关注什么,是关注这款数据库如何安装部署吗,还是关注它的界面多么酷炫, 肯定最为关注的就是和Oracle数据库的兼容性,能否更适配,业务迁移是否代码改动量最小,迁移的难度更低。

上次参加YCA培训,算是初探崖山数据库容貌,正好公司最近在进行去O国产化选型,让我考察一些国产数据库。趁着最近崖山数据库举办活动,我也更希望能更深入的去了解崖山数据库,作为国产去O的一个数据库选型参考。

今天我花了半天的时间,从公司一套核心Oracle数据库选择了不同的数据类型在崖山数据库上进行对比兼容性测试。

本次测试主要从建表、存储过程、函数、触发器、视图、序列、Package等多个维度考察两者的兼容性。

本次测试其实相对复杂,完成这些测试,涉及的表有几十张,也涉及多个函数。接下来,我将一一列举。


兼容测试

由于所选取的都是生产数据库代码,为安全,对相关表名和字段进行了脱敏和部分省略,所选取的对象也都是精心挑选的。

2.1 建表测试

    -- 建表语句
    SQL> CREATE TABLE yashan.COR_xxx_xxx_MAINT_xxx
    2 (
    3 COM_ID NUMBER(10) NOT NULL,
    4 OFFER_ID NUMBER(10) NOT NULL,
    5 xxxx_CODE NUMBER(10) NOT NULL,
    6 xxxx_LEVEL NUMBER(1) NOT NULL,
    7 OTHER_xxxx_CODE VARCHAR2(255 CHAR) NULL,
    8 INFO_FULL_FLAG VARCHAR2(1 CHAR) NOT NULL,
    9 OFFER_STATUS VARCHAR2(1 CHAR) NOT NULL,
    10 xxxx NUMBER(4) DEFAULT 0 NOT NULL,
    11 xxxx VARCHAR2(255 CHAR) NOT NULL,
    12 OFFER_TYPE VARCHAR2(1 CHAR) NOT NULL,
    13 HS_CODE VARCHAR2(50 CHAR) NULL,
    14 xxxxx_PRODS VARCHAR2(255 CHAR) NULL,
    15 xxxxx_DESCRIPT VARCHAR2(4000 CHAR) NOT NULL,
    16 OFFER_KEYWORD VARCHAR2(1000 CHAR) NOT NULL,
    17 xxxxx_xxxx_FLAG VARCHAR2(1 CHAR) DEFAULT '0' NULL,
    18 PIC_WIDTH NUMBER(4) DEFAULT 0 NOT NULL,
    19 PIC_HEIGHT NUMBER(4) DEFAULT 0 NOT NULL,
    20 OFFER_OPEN VARCHAR2(1 CHAR) DEFAULT '1' NOT NULL,
    21 MAX_REPLY NUMBER(4) NULL,
    22 xxxx_xxxx_TIME DATE DEFAULT TO_DATE('1900-01-01','YYYY-MM-DD HH24:MI:SS') NOT NULL,
    23 RETURN_ADVISE VARCHAR2(4000 CHAR) NULL,
    24 ADD_TIME DATE DEFAULT TO_DATE('1900-01-01','YYYY-MM-DD HH24:MI:SS') NOT NULL,
    25 ADDER_NO VARCHAR2(50 CHAR) DEFAULT '0' NOT NULL,
    26 ADDER_NAME VARCHAR2(50 CHAR) DEFAULT ' ' NOT NULL,
    27 LAST_xxxx_TIME DATE DEFAULT TO_DATE('1900-01-01','YYYY-MM-DD HH24:MI:SS') NULL,
    28 CHECKER_NO VARCHAR2(50 CHAR) NULL,
    29 CHECKER_NAME VARCHAR2(50 CHAR) NULL,
    30 xxxx_TIME TIMESTAMP(6) WITH TIME ZONE DEFAULT TO_DATE('1900-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS') NOT NULL,
    31 SYNC_FLAG VARCHAR2(1 CHAR) DEFAULT 'F' NOT NULL,
    32 ADDER_ROLE VARCHAR2(1 CHAR) NULL,
    33 RETURN_ADVISE_CN VARCHAR2(4000 CHAR) NULL,
    34 TABLE_xxxx_FLAG VARCHAR2(1 CHAR) NULL,
    35 INFO_xxxxx_TYPE VARCHAR2(1 CHAR) NULL,
    36 CONSTRAINT PK_COxxxxxxxxCHK
    37 PRIMARY KEY
    38 (OFFER_ID)
    39 ENABLE VALIDATE
    40 )
    41 NOPARALLEL;
    <br>
    [30:39]YAS-04209 unexpected word WITH