检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
支持,有差异 Oracle数据库的数据库对象在同一namespace内不能重名。GaussDB同一namespace内同义词可与表、视图、函数、package重名,如果重名,会优先访问该名称对象,未寻找到该名称对象时才会寻找该名称的同义词指向的对象;同义词指向的对象的Schema名是用户名
FROM DUAL;的语句,而不支持形如SELECT(SYSDATE- SYSDATE) DAY TO SECOND FROM DUAL;的语句。Oracle均支持。 10 json对象访问表达式 部分支持,有差异 GaussDB支持通过“->'key'“的方式从JSON对象中提取value,而Oracle支持通过“
7 DENSE_RANK 支持 - 8 FIRST 支持 GaussDB使用KEEP的语法,兼容Oracle此功能。 9 GROUPING 支持 - 10 LAST 支持 GaussDB使用KEEP的语法,兼容Oracle此功能。 11 LISTAGG 支持 - 12 MAX 支持
FROM DUAL;的语句,而不支持形如SELECT(SYSDATE- SYSDATE) DAY TO SECOND FROM DUAL;的语句。Oracle均支持。 10 json对象访问表达式 部分支持,有差异 1. GaussDB支持通过“->'key'“的方式从JSON对象
7 DENSE_RANK 支持 - 8 FIRST 支持 GaussDB使用KEEP的语法,兼容Oracle此功能。 9 GROUPING 支持 - 10 LAST 支持 GaussDB使用KEEP的语法,兼容Oracle此功能。 11 LISTAGG 支持 - 12 MAX 支持
GaussDB:,可以出现在fmt的任意位置。 Oracle: 在format中,逗号只能出现在整数部分,且不能出现在数字开头,在原数据中可以在数字的开头位置。 支持format中的逗号与原数据的逗号个数和位置不一致,但最后一个逗号的位置需一致。 原数据和Format中的连续逗号,等同于没有逗号。
控制语句 表1 条件语句 序号 Oracle数据库 GaussDB数据库 1 IF THEN 支持 2 IF THEN ELSE 支持 3 IF THEN ELSIF 支持 4 simple CASE: CASE selector WHEN selector_value_1 THEN
GaussDB和Oracle均支持Varrays的比较,与Oracle不同的是,GaussDB不仅支持比较两个Varrays中的元素个数,还支持同类型的Varrays之间的比较。 7 数据类型优先级 支持 - 8 数据转换(显示/隐式类型转换) 支持 - 父主题: SQL的基本元素
GaussDB:逗号可以出现在fmt的任意位置。 Oracle: 在format中,逗号只能出现在整数部分,且不能出现在数字开头;在原数据中,逗号可以在数字的开头位置。 支持format中的逗号与原数据的逗号个数和位置不一致,但最后一个逗号的位置需一致。 原数据和Format中的连续逗号,等同于没有逗号。
控制语句 表1 条件语句 序号 Oracle数据库 GaussDB数据库 1 IF THEN 支持 2 IF THEN ELSE 支持 3 IF THEN ELSIF 支持 4 simple CASE: CASE selector WHEN selector_value_1 THEN
Oracle和GaussDB均支持Varrays的比较,与Oracle不同的是,GaussDB不仅支持比较两个Varrays中的元素个数,还支持同类型的Varrays之间的比较。 7 数据类型优先级 支持 - 8 数据转换(显示/隐式类型转换) 支持 - 父主题: SQL的基本元素
SQL查询和子查询 GaussDB数据库兼容除分层查询以外的SQL查询和子查询。 表1 SQL查询和子查询 序号 Oracle数据库 GaussDB数据库 差异 1 创建简单查询 支持 - 2 分层查询 支持,有差异 GaussDB仅支持Oracle中的CONNECT_BY_FILTERING
支持,有差异 GaussDB查询不包含分组,且目标列同时包含聚集函数和集合返回函数时,不忽略对集合返回函数列的排序。 5 Joins 支持,有差异 GaussDB只支持和Oracle相同的Join Types,如left、right、self 、natural、full outer join等。不支持In-Memory
table_name。 Oracle数据库名为*_TRIGGERS的视图统计了trigger的相关信息,GaussDB相关视图与Oracle存在差异,GaussDB视图具体请参见《开发指南》中”系统表和系统视图 > 系统视图 > 其他系统视图”中的DB_TRIGGERS、ADM_TRIGGERS、MY_TRIGGERS章节。
Oracle不支持对into_clause的表设置别名,GaussDB支持。 into_clause指定sequence: Oracle:首次引用nextval会生成下一个数字,但所有非首次引用的nextval都将返回相同数字。 GaussDB:引用nextval生成的数字可以正常自增。 Ora
动态SQL 表1 动态SQL语句执行方式 序号 Oracle数据库 GaussDB数据库 差异 1 EXECUTE IMMEDIATE 支持,有差异 GaussDB通过dynamic_sql_compat参数控制同名变量是否读取同一参数,并且检查调用存储过程时绑定参数出入参类型是否与语句参数类型一致。
动态SQL 表1 动态SQL语句执行方式 序号 Oracle数据库 GaussDB数据库 差异 1 EXECUTE IMMEDIATE 支持,有差异 GaussDB通过dynamic_sql_compat参数控制同名变量是否读取同一参数,并且检查调用存储过程时绑定参数出入参类型是否与语句参数类型一致。
Oracle不支持对into_clause的表设置别名,GaussDB支持。 into_clause指定sequence: Oracle:首次引用nextval会生成下一个数字,但所有非首次引用的nextval都将返回相同数字。 GaussDB:引用nextval生成的数字可以正常自增。 Ora
table_name。 Oracle数据库名为*_TRIGGERS的视图统计了trigger的相关信息,GaussDB相关视图与Oracle存在差异,GaussDB视图具体请参见《开发指南》中“系统表和系统视图 > 系统视图 > 其他视图”中的DB_TRIGGERS、ADM_TRIGGERS、M
) ; 支持 record的列可以定义为NOT NULL属性也可以指定默认值。其他类型嵌套record类型,record类型的默认值和NOT NULL不生效;通过package.record_type访问类型的形式来创建record变量,该record变量的默认值和NOT NULL不生效。