单行函数
序号 |
Oracle数据库 |
GaussDB数据库 |
---|---|---|
1 |
支持,有差异 |
|
2 |
支持,有差异 |
|
3 |
支持,有差异 |
|
4 |
字符集函数 |
不支持 |
5 |
Collation函数 |
不支持 |
6 |
支持,有差异 |
|
7 |
支持,有差异 |
|
8 |
支持,有差异 |
|
9 |
支持,有差异 |
|
10 |
集合函数 |
不支持 |
11 |
支持 |
|
12 |
数据挖掘功能函数 |
不支持 |
13 |
支持,有差异 |
|
14 |
JSON函数 |
不支持 |
15 |
支持,有差异 |
|
16 |
支持 |
|
17 |
支持,有差异 |
序号 |
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 |
支持,有差异 |
|
15 |
NANVL |
支持,有差异 |
GaussDB不支持直接声明或浮点数除0得到NaN。 |
16 |
POWER |
支持 |
- |
17 |
REMAINDER |
支持,有差异 |
返回值数据类型不同。 GaussDB:
Oracle: 返回值类型是number。 |
18 |
ROUND |
支持,有差异 |
|
19 |
SIGN |
支持 |
- |
20 |
SIN |
支持 |
- |
21 |
SINH |
支持 |
- |
22 |
SQRT |
支持 |
- |
23 |
TAN |
支持 |
- |
24 |
TANH |
支持,有差异 |
返回值数据类型不同。 gaussdb:
Oracle 返回值类型是number。 |
25 |
TRUNC |
支持 |
- |
26 |
WIDTH_BUCKET |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
CHR |
支持,有差异 |
|
2 |
CONCAT |
支持 |
- |
3 |
INITCAP |
支持,有差异 |
返回值受限于数据库字符集,导致返回结果与Oracle数据库不一致。 |
4 |
LOWER |
支持,有差异 |
|
5 |
LPAD |
支持 |
- |
6 |
LTRIM |
支持,有差异 |
返回值类型不一致。 当输入为字符数据类型时,Oracle返回VARCHAR2类型;输入为数据库创建时指定的国家字符集时,Oracle返回NVARCHAR2类型;输入为LOB类型时,Oracle返回LOB类型,GaussDB返回TEXT类型。 |
7 |
NCHR |
支持,有差异 |
|
8 |
NLS_LOWER |
支持,有差异 |
|
9 |
NLS_UPPER |
支持,有差异 |
|
10 |
NLSSORT |
支持 |
- |
11 |
REGEXP_REPLACE |
支持,有差异 |
|
12 |
REGEXP_SUBSTR |
支持,有差异 |
匹配规则受aformat_regexp_match参数影响,具体影响规格请参见《开发指南》中“SQL参考 > 函数和操作符 > 字符处理函数和操作符”章节REGEXP_SUBSTR函数部分。 |
13 |
REPLACE |
支持 |
- |
14 |
RPAD |
支持 |
- |
15 |
RTRIM |
支持 |
- |
16 |
SUBSTR |
支持 |
- |
17 |
TRANSLATE |
支持 |
- |
18 |
TRIM |
支持 |
- |
19 |
UPPER |
支持,有差异 |
|
20 |
INSTRB |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
ASCII |
支持,有差异 |
返回值类型不同。Oracle数据库返回类型为uint4,GaussDB为int4。 |
2 |
INSTR |
支持 |
- |
3 |
LENGTH |
支持 |
- |
4 |
REGEXP_COUNT |
支持,有差异 |
|
5 |
REGEXP_INSTR |
支持,有差异 |
匹配规则受aformat_regexp_match参数影响,具体影响规格请参见《开发指南》中“SQL参考 > 函数和操作符 > 字符处理函数和操作符”章节REGEXP_INSTR函数部分。 |
6 |
LENGTHC |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
ADD_MONTHS |
支持,有差异 |
|
2 |
CURRENT_DATE |
支持,有差异 |
GaussDB不支持nls_date_format参数设置时间显示格式。 |
3 |
CURRENT_TIMESTAMP |
支持,有差异 |
Oracle数据库参数支持范围(0 ~ 9)。 GaussDB支持范围(0 ~ 6),微秒末位零不显示。 |
4 |
DBTIMEZONE |
支持,有差异 |
GaussDB不支持自带tz的timestamp类型接口的调用。 |
5 |
EXTRACT |
支持 |
- |
6 |
LAST_DAY |
支持,有差异 |
返回值类型不一致。 |
7 |
LOCALTIMESTAMP |
支持,有差异 |
Oracle数据库参数支持范围(0 ~ 9)。 GaussDB支持范围(0 ~ 6),微秒末位零不显示。 |
8 |
MONTHS_BETWEEN |
支持,有差异 |
入参类型不一致。 |
9 |
NEW_TIME |
支持,有差异 |
new_time函数的第一个入参为字面量时,字面量的格式以及函数的返回值类型均与Oracle数据库不一致。 |
10 |
NEXT_DAY |
支持 |
- |
11 |
NUMTODSINTERVAL |
支持,有差异 |
GaussDB不支持dsinterval类型,暂时用interval兼容dsinterval类型。 |
12 |
NUMTOYMINTERVAL |
支持,有差异 |
GaussDB不支持yminterval类型,暂时用interval兼容yminterval类型。 |
13 |
SESSIONTIMEZONE |
支持,有差异 |
|
14 |
SYS_EXTRACT_UTC |
支持 |
- |
15 |
SYSDATE |
支持,有差异 |
返回值类型不一致。 |
16 |
SYSTIMESTAMP |
支持,有差异 |
GaussDB毫秒计算只支持6位,Oracle数据库支持9位。 |
17 |
TO_CHAR |
支持,有差异 |
fmt‘5’未在Oracle数据库文档中,未适配。 |
18 |
TO_DSINTERVAL |
支持,有差异 |
GaussDB不支持dsinterval类型,暂时用interval兼容dsinterval类型。 |
19 |
TO_TIMESTAMP |
支持,有差异 |
GaussDB毫秒计算只支持6位,Oracle数据库支持9位。 |
20 |
TO_TIMESTAMP_TZ |
支持,有差异 |
GaussDB的timestamptz等价于Oracle的timestampwithloacltimezone,缺少Oracle对应的timestamptz类型。nls_date_language只支持ENGLISH和AMERICAN两种语言。 |
21 |
TO_YMINTERVAL |
支持,有差异 |
GaussDB不支持yminterval类型,暂时用interval兼容yminterval类型。 |
22 |
TRUNC |
支持,有差异 |
GaussDB返回的类型与第一个入参的类型保持一致,Oracle始终返回date类型,另外支持指定的format也有区别,具体支持的列表详见《开发指南》的“SQL参考 > 函数和操作符 > 时间和日期处理函数和操作符”章节。 |
23 |
TZ_OFFSET |
支持,有差异 |
接收一个时区名称为入参的时候,时区名称的类型比Oracle数据库要少。 |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
GREATEST |
支持,有差异 |
|
2 |
LEAST |
支持,有差异 |
|
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
ASCIISTR |
支持 |
- |
2 |
CAST |
支持,有差异 |
|
3 |
HEXTORAW |
支持 |
- |
4 |
RAWTOHEX |
支持 |
- |
5 |
TO_BINARY_DOUBLE |
支持,有差异 |
GaussDB不支持nlsparam参数。 |
6 |
TO_BINARY_FLOAT |
支持,有差异 |
GaussDB不支持nlsparam参数。 |
7 |
TO_BLOB |
支持,有差异 |
|
8 |
TO_CLOB |
支持 |
- |
9 |
TO_DATE |
支持,有差异 |
|
10 |
TO_MULTI_BYTE |
支持 |
- |
11 |
TO_NCHAR |
支持,有差异 |
|
12 |
TO_NUMBER |
支持,有差异 |
Gauss不支持NLS_PARAM参数 Gauss与O*的fmt选项差异点描述: 1、$ Gauss不支持该fmt 2、, (comma) Gauss:,可以出现在fmt的任意位置 O*: 在format中,逗号只能出现在整数部分,且不能出现在数字开头,在原数据中可以在数字的开头位置 支持format中的逗号与原数据的逗号个数和位置不一致,但最后一个逗号的位置需一致 原数据和Format中的连续逗号,等同于没有逗号。 当原数据中没有逗号时,format的最后一个逗号后面的数字位数需与原数据相等。 3、B GaussDB未实现该功能 4、C Gauss不支持NLS参数 5、G Gauss不支持NLS参数 6、L Gauss不支持NLS参数 7、U Gauss不支持NLS参数 8、D Gauss不支持NLS参数 9、PR Gauss:等同于S,返回负数 Oracle: 返回<尖括号>中的负值。 返回带前导和尾随空格的正值。 限制:PR格式元素只能出现在数字格式模型的最后一个位置。 10、RN | rn GaussDB未实现该功能 TM| TM9 | TMe GaussDB未实现该功能 11、V GaussDB未实现该功能 12、FM Gauss当有fm时,允许format中的逗号与原数据中多,不然需严格保持一致。 Oracle 返回值保留前后的空格 13、EEEE GaussDB未实现该功能 |
13 |
TO_SINGLE_BYTE |
支持 |
- |
14 |
TREAT |
支持,有差异 |
GaussDB不支持使用“.”操作符取值,不支持转化为object类型。 |
15 |
UNISTR |
支持,有差异 |
GaussDB只支持UTF-8编码,Oracle数据库支持UTF-8和UTF-16编码。 |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
EMPTY_BLOB |
支持 |
- |
2 |
EMPTY_CLOB |
支持,有差异 |
GaussDB的CLOB类型不支持Oracle数据库中的定位器概念。 |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
EXISTSNODE |
支持,有差异 |
在入参有命名空间时,xpath和命名空间都需要定义别名。 |
2 |
EXTRACTVALUE |
支持,有差异 |
目前仅支持xpath1.0版本。 |
3 |
SYS_XMLAGG |
支持,有差异 |
xmlagg的别名,可使用xmlagg代替。 |
4 |
XMLAGG |
支持 |
- |
5 |
XMLCOMMENT |
支持 |
- |
6 |
XMLCONCAT |
支持 |
- |
7 |
XMLELEMENT |
支持,有差异 |
xmlelement和xmlattributes的name字段赋值为NULL时,行为与Oracle不一致。
|
8 |
XMLEXISTS |
支持,有差异 |
GaussDB入参为xml类型。 |
9 |
XMLFOREST |
支持,有差异 |
GaussDB返回值为xml类型。 GaussDB不支持EVALNAME语法。 |
10 |
XMLPARSE |
支持,有差异 |
GaussDB返回值为xml类型。 GaussDB不支持WELLFORMED语法。 |
11 |
XMLROOT |
支持,有差异 |
GaussDB返回值为xml类型。 |
12 |
JSON_OBJECT |
支持 |
- |
13 |
XMLTABLE |
支持,有差异 |
GaussDB从xml中选取数据使用的为XPath 1.0表达式,不支持声明默认命名空间,不支持多组输入及取别名,不支持省略传入数据的passing_clause子句,不支持RETURNING SEQUENCE BY REF子句和( SEQUENCE ) BY REF子句。 |
14 |
GETSTRINGVAL |
支持 |
- |
15 |
GETCLOBVAL |
支持 |
- |
16 |
XMLSEQUENCE |
支持 |
- |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
DECODE |
支持 |
- |
2 |
DUMP |
支持,有差异 |
因存储格式不同,GaussDB数值和时间类型返回结果和Oracle数据库不一致。如,GaussDB中select dump(123); 返回Typ=23 Len=4: 123,0,0,0。Oracle中select dump(123) from dual; 返回Typ=2 Len=3: 194,2,24。 |
3 |
ORA_HASH |
支持,有差异 |
GaussDB中有以下行为:
|
4 |
VSIZE |
支持,有差异 |
因存储格式不同,GaussDB数值和时间类型返回结果和Oracle数据库不一致。如GaussDB中select vsize(999); 返回4。Oracle中select vsize(999) from dual; 返回3。 |
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
SYS_CONTEXT |
支持,有差异 |
GaussDB对不支持的参数返回NULL。 以下为不支持的参数列表:
|
2 |
SYS_GUID |
支持 |
- |
3 |
USER |
支持,有差异 |
返回值类型不一致。 |
4 |
USERENV |
支持,有差异 |
GaussDB对不支持的参数返回NULL。 以下为不支持的参数列表:
|