用户体验 | 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