20

openGauss 可替代 Oracle 吗?从字段类型说起……

 3 years ago
source link: https://www.infoq.cn/article/qzvNCd1kts5quhcQTU0l
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

随着疫情及国际局势的不确定性增加,数据库作为系统运行中的关键组件,对于国产化数据库替换 Oracle 的呼声也越发高涨。国产数据库中 GaussDB 一直备受关注,去年华为宣布放弃私有云和数据库也引发了诸多争议;但另一方面,华为云在 6 月 30 日将原 GaussDB 100 开源为 openGauss,采用木兰开源协议,并与华为公有云 GaussDB for openGauss 采取共同迭代,为国内开源数据库市场带来了新的血液。

正文

作为 GaussDB 100 的延伸,openGauss 是否可以在 OLTP 场景替代 Oracle?从此篇开始,笔者会按照字段类型、表及索引类型、SQL 语法、函数、PLSQL、连接方式等方面逐一进行兼容性评估与相关阐述,可作为替换 Oracle 的借鉴与参考。

Oracle 数据库的字段总共包含 6 类:字符、数字、日期、大对象、ROWID、RAW。本次验证环境为 centos 7.6,基于 openGauss 1.0.0 版本对 Oracle 字段类型进行验证。

字符

Oracle 中包含 6 种字符类型:char、nchar、varchar、varchar2、nvarchar2、long。其中 char、varchar 为 ANSI 编码,用于单字节来存储数据,适合英文,中文会不兼容,nchar 及 nvarchar2 采用 UNICODE 编码,用两个字节来存储,适合存放汉字;char,nchar 为定长字段;varchar、varchar2、nvarchar2、LONG 为可变长字段,LONG 最大长度限制为 2GB,用于不需要作字符串搜索的长串数据,是一个遗留下来的而且将来不会被支持的数据类型,逐渐被 BLOB,CLOB,NCLOB 等大的数据类型所取代。varchar 是 SQL 标准里面规范的类型,varchar2 是 Oracle 提供的独有的数据类型,主要区别在于:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK