华为云云数据库GaussDB系统函数_云淘科技
兼容函数分为:用户自定义函数、单行函数、AGG函数、分析函数、对象引用函数、模型函数、OLAP函数。
单行函数
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
---|---|---|
1 |
数值函数 |
支持 |
2 |
返回字符值的字符函数 |
支持 |
3 |
返回数值的字符函数 |
支持 |
4 |
字符集函数 |
支持 |
5 |
Collation函数 |
不支持 |
6 |
日期时间函数 |
支持 |
7 |
一般比较函数 |
支持 |
8 |
转换函数 |
支持 |
9 |
大对象函数 |
支持 |
10 |
集合函数 |
不支持 |
11 |
分层函数 |
支持 |
12 |
数据挖掘功能函数 |
不支持 |
13 |
XML函数 |
支持,有差异 |
14 |
JSON函数 |
支持 |
15 |
编码和解码功能函数 |
支持 |
16 |
NULL相关函数 |
支持 |
17 |
环境和标识符函数 |
支持 |
18 |
聚合函数 |
支持 |
19 |
分析函数 |
不支持 |
20 |
对象引用函数 |
不支持 |
21 |
模型函数 |
不支持 |
22 |
OLAP函数 |
不支持 |
23 |
数据盒功能函数 |
不支持 |
24 |
关于用户定义的函数 |
支持 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
ABS |
支持 |
– |
2 |
ACOS |
支持 |
– |
3 |
ASIN |
支持 |
– |
4 |
ATAN |
支持 |
– |
5 |
ATAN2 |
支持 |
– |
6 |
BITAND |
支持 |
– |
7 |
CEIL |
支持 |
– |
8 |
COS |
支持 |
– |
9 |
COSH |
支持 |
– |
10 |
EXP |
支持 |
– |
11 |
FLOOR |
支持 |
– |
12 |
LN |
支持 |
– |
13 |
LOG |
支持 |
– |
14 |
MOD |
支持,有差异 |
返回类型不一致,Oracle数据库类型包括BINARY_DOUBLE,BINARY_FLOAT,NUMBER;GaussDB返回类型包括int2,int4,int8,numeric。 |
15 |
NANVL |
支持,有差异 |
不支持直接声明或浮点数除0得到NaN。 |
16 |
POWER |
支持 |
– |
17 |
REMAINDER |
支持,有差异 |
当两个入参中有一个是int类型时,另一个参数必须为int、numeric类型或字面值整数(无小数点的合法数字如:‘12’)。 |
18 |
ROUND |
支持,有差异 |
第一个参数n的float类型,GaussDB存在精度损失,比Oracle数据库精度低。 select round(NULL,'q'); Oracle数据库null,GaussDB报错invalid input syntax for integer: “q”。 |
19 |
SIGN |
支持 |
– |
20 |
SIN |
支持 |
– |
21 |
SINH |
支持 |
– |
22 |
SQRT |
支持 |
– |
23 |
TAN |
支持 |
– |
24 |
TANH |
支持,有差异 |
当传入整数或者加有引号的整数(如:‘12’),返回结果不一致。 |
25 |
TRUNC |
支持 |
– |
26 |
WIDTH_BUCKET |
支持 |
– |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
CHR |
支持,有差异 |
输入的数字不符合现有字符集时,在JDBC下GaussDB会报错,Oracle数据库会返回乱码。 |
2 |
CONCAT |
支持 |
– |
3 |
INITCAP |
支持 |
– |
4 |
LOWER |
支持,有差异 |
返回值类型不一致,Oracle数据库和输入类型一致的数据类型。 SELECT LOWER(TO_DATE('2012-12-10','YYYY-MM-DD')); Oracle返回10-DEC-12,GaussDB返回2012-12-10 00:00:00。 |
5 |
LPAD |
支持 |
– |
6 |
LTRIM |
支持,有差异 |
返回值类型不一致,输入是字符数据类型时Oracle返回VARCHAR2类型,输入是数据库创建指定的国家字符集时Oracle返回NVARCHAR2类型,输入是LOB类型时Oracle返回LOB类型,GaussDB返回TEXT类型。 |
7 |
NLS_LOWER |
支持,有差异 |
返回值类型不同,输入是字符数据类型是Oracle返回VARCHAR2类型,输入是LOB类型时Oracle返回LOB类型,GaussDB返回TEXT类型。 |
8 |
NLS_UPPER |
支持,有差异 |
返回值类型不同,输入是字符数据类型是Oracle返回VARCHAR2类型,输入是LOB类型时Oracle返回LOB类型,GaussDB返回TEXT类型。 |
9 |
NLSSORT |
支持 |
– |
10 |
REGEXP_REPLACE |
支持,有差异 |
GaussDB和Oracle支持有差异。 |
11 |
REGEXP_SUBSTR |
支持 |
– |
12 |
REPLACE |
支持 |
– |
13 |
RPAD |
支持 |
– |
14 |
RTRIM |
支持 |
– |
15 |
SUBSTR |
支持 |
– |
16 |
TRANSLATE |
支持 |
– |
17 |
TRIM |
支持 |
– |
18 |
UPPER |
支持,有差异 |
返回值类型不一致,Oracle数据库和输入类型一致的数据类型,GaussDB返回TEXT类型。 SELECT UPPER(TO_DATE('2012-12-10','YYYY-MM-DD')); Oracle返回10-DEC-12,GaussDB返回2012-12-10 00:00:00。 |
19 |
ASCII |
支持,有差异 |
返回值类型不同,Oracle数据库返回类型为uint4,GaussDB为int4。 |
20 |
INSTR |
支持 |
– |
21 |
INSTRB |
支持 |
– |
22 |
LENGTH |
支持 |
– |
23 |
REGEXP_COUNT |
支持,有差异 |
GaussDB和Oracle支持有差异。 |
24 |
REGEXP_INSTR |
支持 |
– |
25 |
EMPTY_CLOB |
支持,有差异 |
clob不支持定位器。 |
26 |
NCHR |
支持,有差异 |
返回值字节长度与Oracle数据库不一致。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
ADD_MONTHS |
支持,有差异 |
公元后到公元前,GaussDB会和Oracle数据库相差1年。 |
2 |
CURRENT_DATE |
支持,有差异 |
不支持nls_date_format参数设置时间显示格式。 |
3 |
CURRENT_TIMESTAMP |
支持,有差异 |
Oracle数据库参数支持范围(0-9),GaussDB支持范围(0-6),微秒末位零不显示。 |
4 |
DBTIMEZONE |
支持,有差异 |
不支持自带tz的timestamp类型接口的调用。 |
5 |
EXTRACT |
支持 |
– |
6 |
LAST_DAY |
支持,有差异 |
返回值类型不一致。 |
7 |
LOCALTIMESTAMP |
支持 |
– |
8 |
MONTHS_BETWEEN |
支持,有差异 |
入参类型不一致。 |
9 |
NEW_TIME |
支持,有差异 |
new_time函数的第一个入参为字面量时,字面量的格式以及函数的返回值类型均与Oracle数据库不一致。 |
10 |
NEXT_DAY |
支持 |
– |
11 |
NUMTODSINTERVAL |
支持,有差异 |
不支持dsinterval类型。 |
12 |
NUMTOYMINTERVAL |
支持,有差异 |
不支持yminterval类型。 |
13 |
SESSIONTIMEZONE |
支持,有差异 |
– |
14 |
SYS_EXTRACT_UTC |
支持 |
– |
15 |
SYSDATE |
支持,有差异 |
返回值类型不一致。 |
16 |
TO_CHAR |
支持,有差异 |
fmt‘5’未在Oracle数据库文档中,未适配。 |
17 |
TO_DSINTERVAL |
支持,有差异 |
不支持dsinterval类型,暂时用interval兼容dsinterval类型。 |
18 |
TO_TIMESTAMP |
支持,有差异 |
GaussDB毫秒计算只支持6位,Oracle数据库支持9位。 |
19 |
TO_TIMESTAMP_TZ |
支持,有差异 |
GaussDB的timestamptz等价于Oracle的timestampwithloacltimezone,缺少Oracle对应的timestamptz类型。nls_date_language只支持ENGLISH和AMERICAN两种语言。 |
20 |
TO_YMINTERVAL |
支持,有差异 |
不支持yminterval类型,暂时用interval兼容yminterval类型。 |
21 |
TZ_OFFSET |
支持,有差异 |
接受一个时区名称为入参的时候,时区名称的类型比Oracle数据库要少。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
GREATEST |
支持,有差异 |
接受一个时区名称为入参的时候,时区名称的类型比Oracle数据库要少。 |
2 |
LEAST |
支持,有差异 |
不支持NLS_SORT参数制定的比较方式,只支持二进制比较。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
ASCIISTR |
支持,有差异 |
GaussDB数值类型返回结果与Oracle数据库不一致。 |
2 |
CAST |
支持,有差异 |
不支持multiset子句。 |
3 |
CONVERT |
支持 |
– |
4 |
HEXTORAW |
支持 |
– |
5 |
RAWTOHEX |
支持 |
– |
6 |
TO_BINARY_DOUBLE |
支持,有差异 |
不支持nlsparam参数 |
7 |
TO_BINARY_FLOAT |
支持,有差异 |
不支持nlsparam参数 |
8 |
TO_BLOB |
支持,有差异 |
不支持long raw类型。 |
9 |
TO_CLOB |
支持 |
– |
10 |
TO_DATE |
支持,有差异 |
不支持多语种参数。 |
11 |
TO_MULTI_BYTE |
支持,有差异 |
Oracle与GaussDB对时间类型转字符串时的处理方式不一致,传入时间类型数据,返回结果不一致。 |
12 |
TO_NCHAR |
支持,有差异 |
将入参的类型直接转换为text。 |
13 |
TO_NUMBER |
支持,有差异 |
不支持nlsparam参数。 |
14 |
TO_SINGLE_BYTE |
支持,有差异 |
Oracle与GaussDB对时间类型转字符串时的处理方式不一致,传入时间类型数据,返回结果不一致。 |
15 |
TREAT |
支持,有差异 |
不支持使用“.”操作符取值,不支持转化为object类型。 |
16 |
UNISTR |
支持,有差异 |
GaussDB只支持UTF-8编码,Oracle数据库支持UTF-8和UTF-16编码。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
EMPTY_BLOB |
支持 |
– |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
SYS_CONNECT_BY_PATH |
支持 |
– |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
EXISTSNODE |
支持,有差异 |
在入参有命名空间时,xpath和命名空间都需要定义别名。 |
2 |
EXTRACTVALUE |
支持,有差异 |
函数名为extractxml,在入参有命名空间时,xpath和命名空间都需要定义别名。 |
3 |
SYS_XMLAGG |
支持,有差异 |
xmlagg的别名,可使用xmlagg代替。 |
4 |
XMLAGG |
支持 |
– |
5 |
XMLCOMMENT |
支持 |
– |
6 |
XMLCONCAT |
支持 |
– |
7 |
XMLELEMENT |
支持,有差异 |
– |
8 |
XMLEXISTS |
支持,有差异 |
入参为xml类型,部分语法不同。 |
9 |
XMLFOREST |
支持,有差异 |
返回值为xml类型,部分语法不同。 |
10 |
XMLPARSE |
支持,有差异 |
返回值为xml类型,部分功能存在差异。 |
11 |
XMLROOT |
支持,有差异 |
返回值为xml类型,部分功能存在差异。 |
12 |
JSON_OBJECT |
支持 |
– |
13 |
XMLTABLE |
支持,有差异 |
从xml中选取数据使用的为XPath 1.0表达式,不支持声明默认命名空间,不支持多组输入及取别名,不支持省略传入数据的passing_clause子句,不支持RETURNING SEQUENCE BY REF子句和( SEQUENCE ) BY REF子句。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
DECODE |
支持 |
– |
2 |
DUMP |
支持,有差异 |
数值和时间类型返回结果和Oracle数据库不一致。 |
3 |
ORA_HASH |
支持,有差异 |
时间类型的入参转换成字符串类型再进行hash。 |
4 |
VSIZE |
支持,有差异 |
数值和时间类型返回结果和Oracle数据库不一致。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
COALESCE |
支持 |
– |
2 |
LNNVL |
支持,有差异 |
入参condition不完全一致。 |
3 |
NULLIF |
支持 |
– |
4 |
NVL |
支持 |
– |
5 |
NVL2 |
支持 |
– |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
SYS_CONTEXT |
支持,有差异 |
有一些GaussDB无法支持的返回值做了空值处理。 |
2 |
USER |
支持,有差异 |
返回值类型不一致。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
AVG |
支持,有差异 |
未考虑窗口函数(over子句)的差异点。 |
2 |
CORR |
支持 |
– |
3 |
COUNT |
支持 |
– |
4 |
COVAR_POP |
支持 |
– |
5 |
COVAR_SAMP |
支持 |
– |
6 |
CUME_DIST |
支持 |
– |
7 |
DENSE_RANK |
支持 |
– |
8 |
FIRST |
支持 |
– |
9 |
GROUPING |
支持 |
– |
10 |
LAST |
支持 |
– |
11 |
LISTAGG |
支持 |
– |
12 |
MAX |
支持 |
– |
13 |
MEDIAN |
支持 |
– |
14 |
MIN |
支持 |
– |
15 |
PERCENT_RANK |
支持 |
– |
16 |
PERCENTILE_CONT |
支持 |
– |
17 |
RANK |
支持 |
– |
18 |
REGR_ (Linear Regression) |
支持 |
– |
19 |
STDDEV |
支持 |
– |
20 |
STDDEV_POP |
支持 |
– |
21 |
STDDEV_SAMP |
支持 |
– |
22 |
SUM |
支持 |
– |
23 |
VAR_POP |
支持 |
– |
24 |
VAR_SAMP |
支持 |
– |
25 |
VARIANCE |
支持 |
– |
26 |
WM_CONCAT |
支持,有差异 |
使用GaussDB已经兼容的LISTAGG,STRING_AGG函数,兼容此功能。 |
序号 |
Oracle数据库函数 |
GaussDB数据库是否支持 |
差异 |
---|---|---|---|
1 |
FIRST_VALUE |
支持 |
– |
2 |
LAG |
支持 |
– |
3 |
LAST_VALUE |
支持 |
– |
4 |
LEAD |
支持 |
– |
5 |
NTH_VALUE |
支持 |
– |
6 |
NTILE |
支持 |
– |
7 |
ROW_NUMBER |
支持 |
– |
父主题: 分布式
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家