单行函数
| 序号 | Oracle数据库 | GaussDB数据库 |
|---|---|---|
| 1 | 数值函数 | 支持,有差异。 |
| 2 | 返回字符值的字符函数 | 支持,有差异。 |
| 3 | 返回数值的字符函数 | 支持,有差异。 |
| 4 | 字符集函数 | 不支持。 |
| 5 | Collation函数 | 不支持。 |
| 6 | 日期时间函数 | 支持,有差异。 |
| 7 | 通用比较函数 | 支持,有差异。 |
| 8 | 转换函数 | 支持,有差异。 |
| 9 | 大对象函数 | 支持,有差异。 |
| 10 | 集合函数 | 不支持。 |
| 11 | 层次函数 | 支持。 |
| 12 | 数据挖掘功能函数 | 不支持。 |
| 13 | XML类型函数 | 支持,有差异。 |
| 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 | 支持,有差异 | 返回值数据类型不同。
|
| 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参数影响。 |
| 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的timestampwithlocaltimezone,缺少Oracle对应的timestamptz类型。nls_date_language只支持ENGLISH和AMERICAN两种语言。 |
| 21 | TO_YMINTERVAL | 支持,有差异 | GaussDB不支持yminterval类型,暂时用interval兼容yminterval类型。 |
| 22 | TRUNC | 支持,有差异 | GaussDB返回的类型与第一个入参的类型保持一致,Oracle始终返回date类型,另外支持指定的format也有区别。 |
| 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 GaussDB当有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 | COALESCE | 支持 |
| 2 | LNNVL | 支持 |
| 3 | NULLIF | 支持 |
| 4 | NVL | 支持 |
| 5 | NVL2 | 支持 |
| 序号 | 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。 以下为不支持的参数列表:
|