单行函数
序号 |
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 当输入是float8时,返回float8类型; 当输入是numeric时,返回numeric类型; 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 |
支持,有差异 |
返回值类型不一致。GaussDB返回值类型为timestamp without time zone,Oracle返回值类型为date。 |
7 |
LOCALTIMESTAMP |
支持,有差异 |
Oracle数据库参数支持范围(0 ~ 9)。 GaussDB支持范围(0 ~ 6),微秒末位零不显示。 |
8 |
MONTHS_BETWEEN |
支持,有差异 |
入参类型不一致。GaussDB入参均为timestamp without time zone类型,Oracle入参均为date类型。 |
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 |
支持,有差异 |
返回值类型不一致。GaussDB返回值类型为timestamp without time zone,Oracle返回值类型为date。 |
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 |
支持,有差异 |
GaussDB:将入参的类型转换为text。 Oracle:将入参的类型转换为国家字符集(national character set)。 |
12 |
TO_NUMBER |
支持,有差异 |
GaussDB不支持NLS_PARAM参数 GaussDB与Oracle的fmt选项差异点描述: 1、$ GaussDB不支持该fmt。 2、, (comma) GaussDB:,可以出现在fmt的任意位置。 Oracle:
3、B GaussDB未实现该功能。 4、C GaussDB不支持NLS参数。 5、G GaussDB不支持NLS参数。 6、L GaussDB不支持NLS参数。 7、U GaussDB不支持NLS参数。 8、D GaussDB不支持NLS参数。 9、PR GaussDB:等同于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 |
SYS_CONNECT_BY_PATH |
支持,有差异 |
GaussDB中第一个入参指定的列的类型仅支持CHAR/VARCHAR/NVARCHAR2/TEXT/INT1/INT2/INT4/INT8/FLOAT4/FLOAT8/NUMERIC类型。当前该函数col输入不支持表达式输入, 列内容与separator分隔符重复不支持报错。 |
序号 |
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不一致。xmlelement的name字段赋值为NULL时,结果显示name信息为空,且不显示属性信息。xmlattributes的name字段赋值为NULL时,不显示属性信息。 |
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数据库不一致。如:
|
3 |
ORA_HASH |
支持,有差异 |
GaussDB中有以下行为:
|
4 |
VSIZE |
支持,有差异 |
因存储格式不同,GaussDB数值和时间类型返回结果和Oracle数据库不一致。如:
|
序号 |
Oracle数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
SYS_CONTEXT |
支持,有差异 |
GaussDB对不支持的参数返回NULL。 以下为不支持的参数列表: 'action' 'is_application_root' 'is_application_pdb' 'audited_cursorid' 'authenticated_identity' 'authentication_data' 'authentication_method' 'cdb_domain' 'cdb_name' 'client_identifier' 'con_id' 'con_name' 'current_sql_length' 'db_domain' 'db_supplemental_log_level' 'dblink_info' 'drain_status' 'entryid' 'enterprise_identity' 'fg_job_id' 'global_uid' 'identification_type' 'instance' 'is_dg_rolling_upgrade' 'ldap_server_type' 'module' 'network_protocol' 'nls_calendar' 'nls_sort' 'nls_territory' 'oracle_home' 'os_user' 'platform_slash' 'policy_invoker' 'proxy_enterprise_identity' 'proxy_user' 'proxy_userid' 'scheduler_job' 'session_edition_id' 'session_edition_name' 'sessionid' 'statementid' 'terminal' 'unified_audit_sessionid' 'session_default_collation' 'client_info' 'bg_job_id' 'client_program_name' 'current_bind' 'global_context_memory' 'host' 'current_sqln' |
2 |
SYS_GUID |
支持 |
- |
3 |
USER |
支持,有差异 |
返回值类型不一致,GaussDB返回值类型为name,Oracle返回值类型为varchar2。 |
4 |
USERENV |
支持,有差异 |
GaussDB对不支持的参数返回NULL。 以下为不支持的参数列表:
|