南大通用GBase 8s兼容Oracle 区别

点击此处 -> 查看豆丁网查看使用手册

面对激烈的国际竞争和不确定不稳定因素明显上升的外部环境,加快推进国内信息技术产业发展,构建安全、自主的信息技术应用创新体系迫在眉睫。作为国内XC产业数据库领域的领军企业,南大通用推出的OLTP型数据库产品——GBase 8s,已在金融、电信、电力、交通、政府、军工等多个行业用户完成测试,验证了8s的稳定性和性能。GBase 8s是如何兼容Oracle的,让我们从数据类型说起。

1.字符
Oracle中包含6种字符类型:CHAR、NCHAR、VARCHAR、VARCHAR2、NVARCHAR2、LONG。具体如下:

1)CHAR
CHAR类型,定长字符串,会用空格填充来达到其最大长度。CHAR字段最多可以存储2,000字节的信息。

2)VARCHAR
VARCHAR是标准SQL的写法,可变长字符串,可以存储空字符串。

3)VARCHAR2
变长字符串,与CHAR类型不同,是oracle特有的字段,它不会使用空格填充至最大长度。VARCHAR2最多可以存储4,000字节的信息。

4)NCHAR
包含UNICODE格式数据的定长字符串。NCHAR字段最多可以存储2,000字节的信息。它的最大长度取决于国家字符集。

5)NVARCHAR2
包含UNICODE格式数据的变长字符串。 NVARCHAR2最多可以存储4,000字节的信息。

6)LONG
存储变长字符串,最多达2G的字符数据(2GB是指2千兆字节, 而不是2千兆字符),与VARCHAR2 或CHAR 类型一样,存储在LONG 类型中的文本要进行字符集转换。ORACLE建议开发中使用CLOB替代LONG类型。支持LONG 列只是为了保证向后兼容性。CLOB类型比LONG类型的限制要少得多。

GBase 8s除了LONG和VARCHAR2类型外,对Oracle字符类型全部可以兼容,LONG类型可用CLOB替代,而VARCHAR2建议用VARCHAR替代, NVARCHAR2建议用NVARCHAR替代。此外GBase 8s还支持LVARCHAR类型,变长字符串,默认为2048字节,最大支持32739字节。

GBase 8s中验证如下:

● create table t_char(col char);
>>成功;
● create table t_varchar(col varchar);
>>成功;
● create table t_nchar(col nchar);
>>成功;
● create table t_lvarchar(col lvarchar);
>>成功;
● create table t_nvarchar2(col nvarchar2);
>>[-9628]:Type(nvarchar2) not found.
● create table t_varchar2(col varchar2);
>>[-9628]:Type(varchar2) not found.
● create table t_long(col long);
>>[-9628]:Type(long) not found.

2.数字
Oracle包含5种数字类型:INT、NUMBER、FLOAT、BINARY_FLOAT、BINARY_DOUBLE。具体如下:

1)NUMBER
NUMBER(P,S)是最常见的数字类型,需要1~22字节(BYTE)不等的存储空间。
P 是Precison的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过38个有效数字;S是Scale的英文缩写,可以使用的范围为-84~127。Scale为正数时,表示从小数点到最低有效数字的位数,它为负数时,表示从最大有效数字到小数点的位数。

2)INT / INTEGER
INT是NUMBER的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

3)FLOAT
一个ANSI数据类型,也是NUMBER的子类型。精度为126位二进制、38位十进制的浮点数。

4)BINARY_FLOAT
BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型,采用二进制精度。可以支持至少6位精度,每个 BINARY_FLOAT 的值需要 5 个字节,包括长度字节。

5)BINARY_DOUBLE
BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型,采用二进制精度。每个 BINARY_DOUBLE 的值需要 9 个字节,包括长度字节。
GBase 8s除了BINARY_FLOAT和BINARY_DOUBLE类型外需要用DOUBLE PRECISION替代外,对Oracle数值类型全部可以兼容,需要注意的是,GBase 8s中的NUMBER类型以名为NUMERIC的类型出现,区别在于精度不超过32个有效数字,小数点后位数不大于精度位数,此外,GBase 8s还提供MONEY货币值类型,支持用货币字符进行格式化。

GBase 8s中验证如下:

● create table t_number(col numeric);
>>成功;
● create table t_int(col int);
>>成功;
● create table t_float(col float);
>>成功;
● create table t_money(col money);
>>成功;
● create table t_binary_float(col binary_float);
>>[-9628]:Type(binary_float) not found.
● create table t_binary_double(col binary_double);
>>[-9628]:Type(binary_double) not found.

3.时间&日期

Oracle包含4种时间及日期类型:DATE、TIMESTAMP、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND。具体如下:

1)DATE
DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle 存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用7个字节的存储空间。

2)TIMESTAMP
这是一个7字节或12字节的定宽日期/时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位。

3)INTERVAL YEAR TO MOTH
用来存储单位为年和月的时间间隔。

4)INTERVAL DAY TO SECOND
用来存储单位为天和秒的时间间隔。
GBase 8s对Oracle日期类型全部可以兼容,但要说明的是,Oracle中的date对应GBase 8s中的datetime year to second,GBase 8s中的date默认仅支持年月日,不支持时分秒,而Oracle中timestamp§则对应GBase 8s中的datetime year to fraction(min(5,p)),最多保留小数点后5位。

GBase 8s中验证如下:

● create table t_date(col datetime year to second);
>>成功;
● create table t_timestamp(col datetime year to fraction);
>>成功;
● create table t_interval_year_to_month(col interval year to month);
>>成功;
● create table t_interval_day_to_second(col interval day to second);
>>成功;

4.大对象
Oracle包含4种大对象类型BLOB、CLOB、NCLOB、BFILE,存储长度都为4G。具体如下:

1)CLOB
内部字符大对象,存储单字节和多字节字符数据。支持固定宽度和可变宽度的字符集,常用于大文本的存储。

2)NCLOB
国家语言字符集大对象,存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集。

3)BLOB
内部二进制大对象,存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。

4)BFILE
外部二进制文件,存储在数据库外的系统文件,只读的,数据库会将该文件当二进制文件处理。

GBase 8s对Oracle的CLOB和BLOB类型可以兼容,且最大支持4T,但对NCLOB和BFILE类型暂未支持,建议可用CLOB和BLOB替代。此外GBase 8s还另外支持BYTE和TEXT类型,最大均为2G。

GBase 8s中验证如下:

● create table t_clob(col clob);
>>成功;
● create table t_blob(col blob);
>>成功;
● create table t_nclob(col nclob);
>>[-9628]:Type(nclob) not found.
● create table t_bfile(col bfile);
>>[-9628]:Type(bfile) not found.

5.其他类型

除以上常用类型外,Oracle还包含RAW、LONG RAW、ROWID及UROWID类型。具体如下:

1)RAW
用于存储二进制或字符类型数据,变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。这种类型最多可以存储2000字节的信息,建议使用 BLOB 来代替它。

2)LONG RAW
能存储2GB 的原始二进制数据(不用进行字符集转换的数据)。建议使用BLOB来代替它。

3)ROWID
ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。Oracle数据库中每行都有一个伪列。

4)UROWID
UROWID,它用于表,是行主键的一个表示,基于主键生成。UROWID与ROWID的区别就是UROWID可以表示各种ROWID,使用较安全。一般是索引组织表在使用UROWID。

GBase 8s默认支持ROWID伪列,RAW和LONG RAW类型可用BLOB类型替代。
GBase 8s中验证如下:

● create table t_raw(col raw);
>>[-9628]:Type(raw) not found.
● create table t_longraw(col long raw);
>>[-9628]:Type(long raw) not found.
● create table t_test(col int);
select rowid from t_test;
>>成功
● create table t_urowid(col urowid);
>>[-9628]:Type(urowid) not found.

总结一下,GBase 8s可全面兼容Oracle常见数据类型,对于少数非常用数据类型,需要进行少量代码改造,或进行相应类型替换。

南大通用GBase 8s兼容Oracle 区别相关推荐

  1. 南大通用GBase 8s与新华三HPE Superdome Flex完成兼容互认证 携手满足关键行业核心业务需求

    近日,天津南大通用数据技术股份有限公司与紫光股份旗下新华三集团(以下简称"新华三")完成产品兼容性认证,南大通用安全数据库管理系统GBase 8s全面适配新华三HPE Superd ...

  2. 南大通用GBase 8s数据空间管理

    南大通用GBase 8s数据库安装后,创建实例并初始化成功即可正常使用.如果是正式的生产环境,强烈建议对数据文件存储空间进行更为明细的划分,我们需要创建的数据空间一般包括如下几个:rootdbs.pl ...

  3. 南大通用GBase 8s+浪潮K1 Power联合解决方案 助力城市轨道交通国产化进程

    当前,中国是世界上最大的城市轨道交通市场,如火如荼的新基建也加速着城际高速铁路和城市轨道交通的发展.据统计,中国大陆地区已有40个城市开通了城轨交通运营,运营线路超过208条,运行线路总长度达6736 ...

  4. 南大通用GBase 8s优势介绍

    GBase 8s是南大通用推出的一款通用型数据库产品,是国内第一款与世界领先技术同级的事务型通用数据库系统.GBase 8s 的成熟度.稳定性.功能.处理性能处于世界领先水平.与Oracle最新版本相 ...

  5. 南大通用GBase 8s性能简介

    GBase 8s的目标是实现一个具有完善的事务处理能力的高性能的面向联机事务处理应用的安全数据库系统.因此,在保证系统安全性的前提下,还需要尽可能的提高数据库系统的性能,GBase 8s在实现上采用了 ...

  6. 南大通用GBase 8s集群权限管理介绍

    一.用户管理 用户可以使用CREATE USER语句创建一个新的GBase 8s MPP帐号. 下面我们通过两个示例,来向用户展示创建用户和更改用户密码的操作. 示例1:使用超级用户root登录,创建 ...

  7. 国产数据库南大通用GBase 8s学习路径

    1. GBase 8s 安装与手动创建实例 2.GBase 8s 客户端工具之dbaccess 3.GBase 8s 运行模式与切换(新版本) 4.GBase 8s基本数据类型 5.GBase 8s ...

  8. 南大通用GBase数据库为城轨交通正常运行保驾护航

    当前,中国是世界上最大的城市轨道交通市场.据统计,中国大陆地区已有45个城市开通了城市轨道交通运营,运行线路总长度达7978公里.近年来南大通用GBase系列数据库已参与全国20多个城市(深圳.广州. ...

  9. 南大通用GBase数据库完成生态建设30连击

    近日,南大通用GBase 8a.GBase 8s.GBase 8c.GBase 8d.GBase XDM五款产品与17家上下游合作伙伴包括cpu.操作系统.服务器.办公软件.行业应用等30款产品完成兼 ...

最新文章

  1. ASp.Net控件的生命周期
  2. 09机器学习实战之多元线性回归
  3. 代码详解|tensorflow实现 聊天AI--PigPig养成记(1)
  4. U3D 文档 GPU INSTANCING
  5. 集群(一)——LVS负载均衡集群
  6. 走近分形与混沌(part15)--有钱的人会愈来愈有钱,不一定是在于他们的能力,而是因为财富会产生财富
  7. Java中String为什么是final
  8. 542. 01 Matrix
  9. 信息学奥赛一本通 1138:将字符串中的小写字母转换成大写字母 | OpenJudge NOI 1.7 13
  10. 【C++】2018华为软挑:模拟退火+贪心FF解决装箱问题
  11. 项目操作案例丨西门子PLC通过网关连接ACS800变频器
  12. html移动端弹窗,移动端弹窗
  13. maven配置smartupload_SmartUpload文件上传组件的使用教程
  14. 持续降库纯碱增仓大涨,沪铝认购小涨,螺纹10-01季节性正套2022.5.19
  15. ODC 3.4.0 现已上线,让数据库开发更简单
  16. Android阿拉伯适配rtl
  17. 基于控制的角度无人机集群——避障(有源代码)
  18. 马小妹的Android之旅——Android四大基本组件之Activity
  19. 安装hadoop1.2集群环境
  20. “飞思卡尔”杯智能车设计与实践

热门文章

  1. 视频自动播放以及视频过大按比例裁剪为页面大小
  2. 基于TI DRV10970驱动直流无刷电机
  3. 通俗易懂物联网(13):结束语
  4. MVC 银行柜员业务绩效考核系统的设计与实现 毕业设计-附源码02133
  5. 设计与算法 | Google Photos Web UI
  6. 计算机的心智:操作系统之哲学原理
  7. 汽车美容“现状”解决方案!
  8. RecyclerView添加Header的正确方式
  9. vivo分屏_不当学习机的照相机不是好手机:vivo分屏+Jovi助手,学习无压力
  10. 【计算机网络】运输层:运输层协议概述