华为云用户手册

  • The following describes changes of earlier versions. [Version Changes] We have updated the Privacy Statement to improve your experience with this service. Please read the following to learn more about the relevant changes. Added the SmartRooms and IdeaHub access scenarios. Added the description of Personal Data collection, permissions, and path of disabling automatic collection in SmartRooms and IdeaHub access scenarios in Article "How We Collect Your Personal Data." Added the description of third-party SDKs in Article "Third-Party Service Providers and Their Services." Added the user experience improvement program. Added the description of joining and exiting the user experience improvement program in Article "How We Use Your Personal Data." Adjusted the report retention period for better public environment. Changed the report retention period from 30 days to 6 months in Section "Data Storage and Retention." Updated: June 1, 2022 View Huawei Cloud Meeting Privacy Statement
  • Oracle数据库兼容性概述 本章节主要介绍 GaussDB数据库 的Oracle兼容模式与Oracle数据库19C版本的兼容性对比信息。具体的相关信息和规格约束请参考《开发者指南》相应章节。 GaussDB 数据库在数据类型、SQL功能和数据库对象等基本功能上与Oracle数据库兼容,PLSQL方面也基本兼容。由于GaussDB数据库与Oracle数据库底层框架实现存在差异,GaussDB数据库与Oracle数据库仍存在部分差异。GaussDB与Oracle的兼容性如下文所示。 父主题: 主备版
  • 系统视图 由于数据库底层框架实现存在差异,大部分视图GaussDB仅支持部分列,具体请参考《开发者指南》。 表1 支持视图列表 序号 Oracle数据库 GaussDB数据库 差异 1 ALL_ALL_TABLES DB_ALL_TABLES 仅支持部分列 2 ALL_COL_PRIVS DB_COL_PRIVS 仅支持部分列 3 ALL_COLL_TYPES DB_COLL_TYPES 仅支持部分列 4 ALL_ERRORS DB_ERRORS 仅支持部分列 5 ALL_IND_COLUMNS DB_IND_COLUMNS - 6 ALL_COL_COMMENTS DB_COL_COMMENTS 仅支持部分列 7 ALL_CONS_COLUMNS DB_CONS_COLUMNS - 8 ALL_CONSTRAINTS DB_CONSTRAINTS 仅支持部分列 9 ALL_DEPENDENCIES DB_DEPENDENCIES 仅支持部分列 10 ALL_IND_EXPRESSIONS DB_IND_EXPRESSIONS - 11 ALL_IND_PARTITIONS DB_IND_PARTITIONS 仅支持部分列 12 ALL_INDEXES DB_INDEXES 仅支持部分列 13 ALL_IND_SUBPARTITIONS DB_IND_SUBPARTITIONS 仅支持部分列 14 ALL_OBJE CTS DB_OBJECTS 仅支持部分列 15 ALL_PART_COL_STATIS TICS DB_PART_COL_STATISTI CS 仅支持部分列 16 ALL_PART_KEY_COLUMNS DB_PART_KEY_COLUMNS 仅支持部分列 17 ALL_PART_TABLES DB_PART_TABLES 仅支持部分列 18 ALL_SCHEDULER_JOB_ARGS DB_SCHEDULER_JOB_ARGS 仅支持部分列 19 ALL_SCHEDULER_PROG RAM _ARGS DB_SCHEDULER_PROGRAM_ARGS 仅支持部分列 20 ALL_SEQUEN CES DB_SEQUENCES 仅支持部分列 21 ALL_SUBPART_COL_STATISTICS DB_SUBPART_COL_STATISTICS 仅支持部分列 22 ALL_SUBPART_KEY_COLUMNS DB_SUBPART_KEY_COLUMNS 仅支持部分列 23 ALL_SYNONYMS DB_SYNONYMS 仅支持部分列 24 ALL_TAB_COL_STATISTICS DB_TAB_COL_STATISTICS 仅支持部分列 25 ALL_TAB_COMMENTS DB_TAB_COMMENTS 仅支持部分列 26 ALL_TAB_HISTOGRAMS DB_TAB_HISTOGRAMS 仅支持部分列 27 ALL_TAB_STATS_HISTORY DB_TAB_STATS_HISTORY 仅支持部分列 28 ALL_TYPES DB_TYPES 仅支持部分列 29 ALL_PART_INDEXES DB_PART_INDEXES - 30 ALL_PROCEDURES DB_PROCEDURES - 31 ALL_SOURCE DB_SOURCE 仅支持部分列 32 ALL_TAB_COLUMNS DB_TAB_COLUMNS 仅支持部分列 33 ALL_TAB_PARTITIONS DB_TAB_PARTITIONS 仅支持部分列 34 ALL_TAB_SUBPARTITIONS DB_TAB_SUBPARTITIONS 仅支持部分列 35 ALL_TABLES DB_TABLES 仅支持部分列 36 ALL_TRIGGERS DB_TRIGGERS - 37 ALL_USERS DB_USERS - 38 ALL_VIEWS DB_VIEWS 仅支持部分列 39 DBA_AUDIT_OBJECT ADM_AUDIT_OBJECT 仅支持部分列 40 DBA_AUDIT_SESSION ADM_AUDIT_SESSION 仅支持部分列 41 DBA_AUDIT_STATEMENT ADM_AUDIT_STATEMENT 仅支持部分列 42 DBA_AUDIT_TRAIL ADM_AUDIT_TRAIL 仅支持部分列 43 DBA_COL_COMMENTS ADM_COL_COMMENTS 仅支持部分列 44 DBA_COL_PRIVS ADM_COL_PRIVS 仅支持部分列 45 DBA_COLL_TYPES ADM_COLL_TYPES 仅支持部分列 46 DBA_ARGUMENTS ADM_ARGUMENTS 仅支持部分列 47 DBA_CONSTRAINTS ADM_CONSTRAINTS 仅支持部分列 48 DBA_DATA_FILES ADM_DATA_FILES 仅支持部分列 49 DBA_CONS_COLUMNS ADM_CONS_COLUMNS - 50 DBA_DEPENDENCIES ADM_DEPENDENCIES 仅支持部分列 51 DBA_DIRECTORIES ADM_DIRECTORIES 仅支持部分列 52 DBA_PART_COL_STATISTICS ADM_PART_COL_STATISTICS 仅支持部分列 53 DBA_PART_TABLES ADM_PART_TABLES 仅支持部分列 54 DBA_RECYCLEBIN ADM_RECYCLEBIN - 55 DBA_ROLE_PRIVS ADM_ROLE_PRIVS 仅支持部分列 56 DBA_ROLES ADM_ROLES 仅支持部分列 57 DBA_SCHEDULER_JOB_ARGS ADM_SCHEDULER_JOB_ARGS 仅支持部分列 58 DBA_SCHEDULER_PROGRAMS ADM_SCHEDULER_PROGRAMS 仅支持部分列 59 DBA_SCHEDULER_PROGRAM_ARGS ADM_SCHEDULER_PROGRAM_ARGS 仅支持部分列 60 DBA_HIST_SNAPSHOT ADM_HIST_SNAPSHOT 仅支持部分列 61 DBA_HIST_SQL_PLAN ADM_HIST_SQL_PLAN 仅支持部分列 62 DBA_HIST_SQLSTAT ADM_HIST_SQLSTAT 仅支持部分列 63 DBA_HIST_SQLTEXT ADM_HIST_SQLTEXT 仅支持部分列 64 DBA_ILMDATAMOVEMENTPOLICIES GS_ADM_ILMDATAMOVEMENTPOLICIES 仅支持部分列 65 DBA_ILMEVALUATIONDETAILS GS_ADM_ILMEVALUATIONDETAILS 仅支持部分列 66 DBA_ILMOBJECTS GS_ADM_ILMOBJECTS 仅支持部分列 67 DBA_ILMPARAMETERS GS_ADM_ILMPARAMETERS 仅支持部分列 68 DBA_ILMPOLICIES GS_ADM_ILMPOLICIES 仅支持部分列 69 DBA_ILMRESULTS GS_ADM_ILMRESULTS - 70 DBA_ILMTASKS GS_ADM_ILMTASKS - 71 DBA_IND_COLUMNS ADM_IND_COLUMNS 仅支持部分列 72 DBA_IND_EXPRESSIONS ADM_IND_EXPRESSIONS - 73 DBA_IND_PARTITIONS ADM_IND_PARTITIONS 仅支持部分列 74 DBA_INDEXES ADM_INDEXES 仅支持部分列 75 DBA_OBJECTS ADM_OBJECTS 仅支持部分列 76 DBA_PART_INDEXES ADM_PART_INDEXES - 77 DBA_PROCEDURES ADM_PROCEDURES 仅支持部分列 78 DBA_SCHEDULER_JOBS ADM_SCHEDULER_JOBS 仅支持部分列 79 DBA_SCHEDULER_RUNNING_JOBS ADM_SCHEDULER_RUNNING_JOBS 仅支持部分列 80 DBA_SEGMENTS ADM_SEGMENTS 仅支持部分列 81 DBA_SEQUENCES ADM_SEQUENCES - 82 DBA_SOURCE ADM_SOURCE 仅支持部分列 83 DBA_IND_SUBPARTITIONS ADM_IND_SUBPARTITIONS 仅支持部分列 84 DBA_SUBPART_COL_STATISTICS ADM_SUBPART_COL_STATISTICS 仅支持部分列 85 DBA_SUBPART_KEY_COLUMNS ADM_SUBPART_KEY_COLUMNS 仅支持部分列 86 DBA_SYS_PRIVS ADM_SYS_PRIVS 仅支持部分列 87 DBA_TAB_COL_STATISTICS ADM_TAB_COL_STATISTICS 仅支持部分列 88 DBA_TAB_HISTOGRAMS ADM_TAB_HISTOGRAMS 仅支持部分列 89 DBA_TAB_STATISTICS ADM_TAB_STATISTICS 仅支持部分列 90 DBA_TAB_STATS_HISTORY ADM_TAB_STATS_HISTORY 仅支持部分列 91 DBA_TABLESPACES ADM_TABLESPACES 仅支持部分列 92 DBA_TYPES ADM_TYPES 仅支持部分列 93 DBA_USERS ADM_USERS 仅支持部分列 94 DBA_SYNONYMS ADM_SYNONYMS - 95 DBA_TAB_COLS ADM_TAB_COLS 仅支持部分列 96 DBA_TAB_COLUMNS ADM_TAB_COLUMNS 仅支持部分列 97 DBA_TAB_COMMENTS ADM_TAB_COMMENTS - 98 DBA_TABLES ADM_TABLES 仅支持部分列 99 DBA_TAB_PARTITIONS ADM_TAB_PARTITIONS 仅支持部分列 100 DBA_TAB_SUBPARTITIONS ADM_TAB_SUBPARTITIONS - 101 DBA_TRIGGERS ADM_TRIGGERS 仅支持部分列 102 DBA_TYPE_ATTRS ADM_TYPE_ATTRS - 103 DBA_VIEWS ADM_VIEWS 仅支持部分列 104 ROLE_ROLE_PRIVS ROLE_ROLE_PRIVS 仅支持部分列 105 ROLE_SYS_PRIVS ROLE_SYS_PRIVS 仅支持部分列 106 ROLE_TAB_PRIVS ROLE_TAB_PRIVS 仅支持部分列 107 USER_COL_COMMENTS MY_COL_COMMENTS 仅支持部分列 108 USER_COL_PRIVS MY_COL_PRIVS 仅支持部分列 109 USER_COLL_TYPES MY_COLL_TYPES 仅支持部分列 110 USER_CONSTRAINTS MY_CONSTRAINTS - 111 USER_DEPENDENCIES MY_DEPENDENCIES - 112 DICT DICT - 113 DICTIONARY DICTIONARY - 114 NLS_DATABASE_PARAMETERS NLS_DATABASE_PARAMETERS - 115 NLS_INSTANCE_PARAMETERS NLS_INSTANCE_PARAMETERS - 116 PLAN_TABLE PLAN_TABLE 仅支持部分列 117 USER_ERRORS MY_ERRORS 仅支持部分列 118 USER_ILMDATAMOVEMENTPOLICIES GS_MY_ILMDATAMOVEMENTPOLICIES 仅支持部分列 119 USER_ILMEVALUATIONDETAILS GS_MY_ILMEVALUATIONDETAILS 仅支持部分列 120 USER_ILMOBJECTS GS_MY_ILMOBJECTS 仅支持部分列 121 USER_ILMPOLICIES GS_MY_ILMPOLICIES 仅支持部分列 122 USER_ILMRESULTS GS_MY_ILMRESULTS - 123 USER_ILMTASKS GS_MY_ILMTASKS - 124 USER_IND_COLUMNS MY_IND_COLUMNS 仅支持部分列 125 USER_IND_EXPRESSIONS MY_IND_EXPRESSIONS - 126 USER_IND_PARTITIONS MY_IND_PARTITIONS 仅支持部分列 127 USER_IND_SUBPARTITIONS MY_IND_SUBPARTITIONS 仅支持部分列 128 USER_INDEXES MY_INDEXES 仅支持部分列 129 USER_JOBS MY_JOBS 仅支持部分列 130 USER_OBJECTS MY_OBJECTS 仅支持部分列 131 USER_PART_COL_STATISTICS MY_PART_COL_STATISTICS 仅支持部分列 132 USER_PART_INDEXES MY_PART_INDEXES - 133 USER_PART_TABLES MY_PART_TABLES 仅支持部分列 134 USER_PROCEDURES MY_PROCEDURES 仅支持部分列 135 USER_RECYCLEBIN MY_RECYCLEBIN - 136 USER_SCHEDULER_JOB_ARGS MY_SCHEDULER_JOB_ARGS 仅支持部分列 137 USER_SCHEDULER_PROGRAM_ARGS MY_SCHEDULER_PROGRAM_ARGS 仅支持部分列 138 USER_SEQUENCES MY_SEQUENCES - 139 USER_SOURCE MY_SOURCE 仅支持部分列 140 USER_SUBPART_KEY_COLUMNS MY_SUBPART_KEY_COLUMNS 仅支持部分列 141 USER_SYNONYMS MY_SYNONYMS 仅支持部分列 142 USER_SYS_PRIVS MY_SYS_PRIVS 仅支持部分列 143 USER_TAB_COL_STATISTICS MY_TAB_COL_STATISTICS 仅支持部分列 144 USER_TAB_COLUMNS MY_TAB_COLUMNS 仅支持部分列 145 USER_TAB_COMMENTS MY_TAB_COMMENTS - 146 USER_TAB_HISTOGRAMS MY_TAB_HISTOGRAMS 仅支持部分列 147 USER_TAB_PARTITIONS MY_TAB_PARTITIONS 仅支持部分列 148 USER_TAB_STATISTICS MY_TAB_STATISTICS 仅支持部分列 149 USER_TAB_STATS_HISTORY MY_TAB_STATS_HISTORY 仅支持部分列 150 USER_TAB_SUBPARTITIONS MY_TAB_SUBPARTITIONS 仅支持部分列 151 USER_TABLES MY_TABLES 仅支持部分列 152 USER_TABLESPACES MY_TABLESPACES 仅支持部分列 153 USER_TRIGGERS MY_TRIGGERS 仅支持部分列 154 USER_TYPE_ATTRS MY_TYPE_ATTRS - 155 USER_TYPES MY_TYPES 仅支持部分列 156 USER_VIEWS MY_VIEWS 仅支持部分列 157 V$GLOBAL_TRANSACTION V$GLOBAL_TRANSACTION 仅支持部分列 158 V$NLS_PARAMETERS V$NLS_PARAMETERS 仅支持部分列 159 V$SESSION_WAIT V$SESSION_WAIT 仅支持部分列 160 V$SYSSTAT V$SYSSTAT 仅支持部分列 161 V$SYSTEM_EVENT V$SYSTEM_EVENT 仅支持部分列 162 V$VERSION V$VERSION 仅支持部分列 163 V$INSTANCE V_INSTANCE 仅支持部分列 164 GV$INSTANCE GV_INSTANCE - 165 V$MYSTAT V_MYSTAT 仅支持部分列 166 V$SESSION V_SESSION 仅支持部分列 167 GV$SESSION GV_SESSION 仅支持部分列 168 V$SESSION_LONGOPS DV_SESSION_LONGOPS 仅支持部分列 169 V$SESSION DV_SESSIONS 仅支持部分列 170 ALL_ARGUMENTS DB_ARGUMENTS 仅支持部分列 171 USER_CONS_COLUMNS MY_CONS_COLUMNS - 172 USER_PART_KEY_COLUMNS MY_PART_KEY_COLUMNS 仅支持部分列 173 USER_SUBPART_COL_STATISTICS MY_SUBPART_COL_STATISTICS 仅支持部分列 174 USER_ROLE_PRIVS MY_ROLE_PRIVS 仅支持部分列 175 DBA_TAB_PRIVS ADM_TAB_PRIVS 仅支持部分列 176 USER_SCHEDULER_JOBS MY_SCHEDULER_JOBS 仅支持部分列 177 V$LOCK V$LOCK 仅支持部分列 178 V$DBLINK V$DBLINK 仅支持部分列 179 V$OPEN_CURSOR V$OPEN_CURSOR 仅支持部分列 180 DB_TAB_PRIVS DB_TAB_PRIVS 仅支持部分列 181 DB_TAB_MODIFICATIONS DB_TAB_MODIFICATIONS 仅支持部分列 182 MY_TAB_MODIFICATIONS MY_TAB_MODIFICATIONS 仅支持部分列 183 USER_AUDIT_TRAIL MY_AUDIT_TRAIL 仅支持部分列 父主题: 主备版
  • 单行函数 序号 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 关于用户定义的函数 支持 表1 数字函数 序号 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。 当两个入参中有一个是int类型时,另一个参数必须为int、numeric类型或字面值整数(无小数点的合法数字如:‘12’)。 15 NANVL 支持,有差异。 不支持直接声明或浮点数除0得到NaN 16 POWER 支持。 - 17 REMAINDER 支持,有差异。 当两个入参中有一个是int类型时,另一个参数必须为int、numeric类型或字面值整数(无小数点的合法数字如:‘12’) 18 ROUND 支持,有差异。 第一个参数n的float类型GaussDB存在精度损失,比Oracle数据库精度低。 返回类型不一致。round(n, integer)形式,Oracle数据库NUMBER类型,GaussDB返回numeric类型;round(n)形式,Oracle数据库n的数据类型,GaussDB只能返回float8和numeric类型,缺少float4返回类型。 GaussDB判断入参有null,执行框架返回null的逻辑与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 支持,有差异。 返回值精度有差异。 25 TRUNC 支持。 - 26 W IDT H_BUCKET 支持。 - 表2 字符串函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 CHR 支持,有差异 输入的数字不符合现有字符集时,在JDBC下GaussDB会报错,Oracle数据库会返回乱码。 输入0、256等时Oracle数据库会返回Ascii码为0的字符,GaussDB会在'\0;处截断。 2 CONCAT 支持 - 3 INITCAP 支持 - 4 LOWER 支持,有差异 返回值类型不一致,Oracle数据库和输入类型一致的数据类型。 对时间格式上隐式转换问题,输入时间类型时,隐式转换为字符串再进行lower操作。 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类型。 nlsparam参数Oracle数据库还可以传入除nls_sort外的其他参数种类而不报错,GaussDB只支持nls_sort。 8 NLS_UPPER 支持,有差异 返回值类型不同,输入是字符数据类型时Oracle返回VARCHAR2类型,输入是LOB类型时Oracle返回LOB类型,GaussDB返回TEXT类型。 nlsparam参数Oracle数据库还可以传入除nls_sort外的其他参数种类而不报错,GaussDB只支持nls_sort。 9 NLSSORT 支持 - 10 REGEXP_REPLACE 支持,有差异 - 11 REGEXP_SUBSTR 支持 - 12 REPLACE 支持 - 13 RPAD 支持 - 14 RTRIM 支持 - 15 SUBSTR 支持 - 16 TRANSLATE 支持 - 17 TRIM 支持 - 18 UPPER 支持,有差异 返回值类型不一致,Oracle数据库和输入类型一致的数据类型,GaussDB返回TEXT类型。 对时间格式上隐式转换问题,输入时间类型时,隐式转换为字符串再进行upper操作。 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 支持,有差异 。 24 REGEXP_INSTR 支持 - 25 EMPTY_CLOB 支持,有差异 clob不支持定位器 26 NCHR 支持,有差异 返回值字节长度与Oracle数据库不一致。 返回值受限于数据库字符集,导致返回结果与Oracle数据库不一致。 返回入参对应的字节数组时,单个字节在[0x80-0xFF]范围,会返回“?”,Oracle数据库返回“?”或者不输出、或者会报错。 表3 日期时间函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 ADD_MONTHS 支持,有差异 公元后到公元前,GaussDB会和Oracle数据库相差1年。 GaussDB的计算结果范围可以到-4714年,Oracle数据库只到-4713年。 2 CURRENT_DATE 支持,有差异 不支持nls_date_format参数设置时间显示格式。 3 CURRENT_TIMESTAMP 支持,有差异 Oracle数据库参数支持范围(0-9),GaussDB支持范围(0-6),微秒末位零不显示。 4 DBTIMEZONE 支持,有差异 不支持自带tz的timestamp类型接口的调用。 5 EXTRACT 支持 - 6 LAST_DAY 支持,有差异 返回值类型不一致,GaussDB返回值类型为timestamp without time zone,Oracle返回值类型为date。 7 LOCALTIMESTAMP 支持 - 8 MONTHS_BETWEEN 支持,有差异 入参类型不一致,GaussDB入参均为timestamp without time zone类型,Oracle入参均为date类型。 9 NEW_TIME 支持,有差异 new_time函数的第一个入参为字面量时,字面量的格式以及函数的返回值类型均与Oracle数据库不一致。 10 NEXT_DAY 支持 - 11 NUMTODSINTERVAL 支持,有差异 不支持dsinterval类型,暂时用interval兼容dsinterval类型。 12 NUMTOYMINTERVAL 支持,有差异 不支持yminterval类型,暂时用interval兼容yminterval类型。 13 SESSIONTIMEZONE 支持,有差异 - 14 SYS_EXTRACT_UTC 支持 - 15 SYSDATE 支持,有差异 返回值类型不一致,GaussDB返回值类型为timestamp without time zone,Oracle返回值类型为date。 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数据库要少。 表4 通用比较函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 GREATEST 支持,有差异 接受一个时区名称为入参的时候,时区名称的类型比Oracle数据库要少。 2 LEAST 支持,有差异 不支持NLS_SORT参数制定的比较方式,只支持二进制比较。 不支持多语种的表达式。 表5 转换函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 ASCIISTR 支持,有差异 GaussDB数值类型返回结果与Oracle数据库不一致。 2 CAST 支持,有差异 不支持multiset子句。 不支持nlsparam参数。 3 CONVERT 支持 - 4 HEXTORAW 支持 - 5 RAWTOHEX 支持 - 6 TO_BINARY_DOUBLE 支持,有差异 不支持nlsparam参数 7 TO_BINARY_FLOAT 支持,有差异 不支持nlsparam参数 8 TO_BLOB 支持,有差异 不支持long raw类型。 不支持bfile、mime_type类型。 9 TO_CLOB 支持 - 10 TO_DATE 支持,有差异 不支持多语种参数。 返回类型不一致。 缺少控制参数NLS_DATE_FORMAT。 部分format格式不支持。 fmt = 'j'。 1582年10月15日之前Oracle数据库与GaussDB输出不一致。 无分割符时,不保证与Oracle数据库完全一致。如to_date(‘220725’, ‘yymmdd’),yy/rr按照固定长度4解析,会解析为2207年25月,25非法月份则会报错。 11 TO_MULTI_BYTE 支持 - 12 TO_NCHAR 支持,有差异 将入参的类型直接转换为text。 13 TO_NUMBER 支持,有差异 不支持nlsparam参数。 14 TO_SINGLE_BYTE 支持 - 15 TREAT 支持,有差异 不支持使用“.”操作符取值,不支持转化为object类型。 16 UNISTR 支持,有差异 GaussDB只支持UTF-8编码,Oracle数据库支持UTF-8和UTF-16编码。 表6 二进制函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 EMPTY_BLOB 支持 - 表7 层次函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 SYS_CONNECT_BY_PATH 支持,有差异 第一个入参指定的列的类型仅支持CHAR/VARCHAR/NVARCHAR2/TEXT类型 表8 XML类型函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 EXISTSNODE 支持,有差异 在入参有命名空间时,xpath和命名空间都需要定义别名。 2 EXTRACTVALUE 不支持 - 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子句。 表9 编码解码函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 DECODE 支持 - 2 DUMP 支持,有差异 因存储格式不同,数值和时间类型返回结果和Oracle数据库不一致。 3 ORA_HASH 支持,有差异 时间类型的入参转换成字符串类型再进行hash。 不支持maxbucket参数。 4 VSIZE 支持,有差异 数值和时间类型返回结果和Oracle数据库不一致,如GaussDB select vsize(999); 返回3;Oracle select vsize(999) from dual; 返回4。 表10 空值相关的函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 COALESCE 支持 - 2 LNNVL 支持,有差异 入参condition不完全一致。 3 NULLIF 支持 - 4 NVL 支持 - 5 NVL2 支持 - 表11 环境和标识符函数 序号 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 USER 支持,有差异 返回值类型不一致,GaussDB返回值类型为name,Oracle返回值类型为varchar2。 表12 聚合函数 序号 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函数,兼容此功能。 表13 分析函数 序号 Oracle数据库函数 GaussDB数据库是否支持 1 FIRST_VALUE 支持 2 LAG 支持 3 LAST_VALUE 支持 4 LEAD 支持 5 NTH_VALUE 支持 6 NTILE 支持 7 ROW_NUMBER 支持 8 RATIO_TO_REPORT 支持
  • 单行函数 序号 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 关于用户定义的函数 支持 表1 数字函数 序号 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。 当两个入参中有一个是int类型时,另一个参数必须为int、numeric类型或字面值整数(无小数点的合法数字如:‘12’)。 15 NANVL 支持,有差异 不支持直接声明或浮点数除0得到NaN。 16 POWER 支持 - 17 REMAINDER 支持,有差异 当两个入参中有一个是int类型时,另一个参数必须为int、numeric类型或字面值整数(无小数点的合法数字如:‘12’)。 18 ROUND 支持,有差异 第一个参数n的float类型,GaussDB存在精度损失,比Oracle数据库精度低。 返回类型不一致。round(n, integer)形式,Oracle数据库NUMBER类型,GaussDB返回numeric类型;round(n)形式,Oracle数据库n的数据类型,GaussDB只能返回float8和numeric类型,缺少float4返回类型。 GaussDB判断入参有null,执行框架返回null的逻辑与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 支持 - 表2 字符串函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 CHR 支持,有差异 输入的数字不符合现有字符集时,在JDBC下GaussDB会报错,Oracle数据库会返回乱码。 输入0、256等时Oracle数据库会返回Ascii码为0的字符,GaussDB会在'\0;处截断。 2 CONCAT 支持 - 3 INITCAP 支持 - 4 LOWER 支持,有差异 返回值类型不一致,Oracle数据库和输入类型一致的数据类型。 对时间格式上隐式转换问题,输入时间类型时,隐式转换为字符串再进行lower操作。 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类型。 nlsparam参数Oracle数据库还可以传入除nls_sort外的其他参数种类而不报错,GaussDB只支持nls_sort。 8 NLS_UPPER 支持,有差异 返回值类型不同,输入是字符数据类型是Oracle返回VARCHAR2类型,输入是LOB类型时Oracle返回LOB类型,GaussDB返回TEXT类型。 nlsparam参数Oracle数据库还可以传入除nls_sort外的其他参数种类而不报错,GaussDB只支持nls_sort。 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类型。 对时间格式上隐式转换问题,输入时间类型时,隐式转换为字符串再进行upper操作。 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数据库不一致。 返回入参对应的字节数组时,单个字节在[0x80-0xFF]范围,会返回“?”,Oracle数据库返回“?”或者不输出、或者会报错。 表3 日期时间函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 ADD_MONTHS 支持,有差异 公元后到公元前,GaussDB会和Oracle数据库相差1年。 GaussDB的计算结果范围可以到-4714年,Oracle数据库只到-4713年。 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数据库要少。 表4 通用比较函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 GREATEST 支持,有差异 接受一个时区名称为入参的时候,时区名称的类型比Oracle数据库要少。 2 LEAST 支持,有差异 不支持NLS_SORT参数制定的比较方式,只支持二进制比较。 不支持多语种的表达式。 表5 转换函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 ASCIISTR 支持,有差异 GaussDB数值类型返回结果与Oracle数据库不一致。 2 CAST 支持,有差异 不支持multiset子句。 不支持nlsparam参数。 3 CONVERT 支持 - 4 HEXTORAW 支持 - 5 RAWTOHEX 支持 - 6 TO_BINARY_DOUBLE 支持,有差异 不支持nlsparam参数 7 TO_BINARY_FLOAT 支持,有差异 不支持nlsparam参数 8 TO_BLOB 支持,有差异 不支持long raw类型。 不支持bfile、mime_type类型。 9 TO_CLOB 支持 - 10 TO_DATE 支持,有差异 不支持多语种参数。 返回类型不一致。 缺少控制参数NLS_DATE_FORMAT。 部分format格式不支持。 fmt = 'j'。 1582年10月15日之前Oracle数据库与GaussDB输出不一致。 无分割符时,不保证与Oracle数据库完全一致。如to_date(‘220725’, ‘yymmdd’),yy/rr按照固定长度4解析,会解析为2207年25月,25非法月份则会报错。 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编码。 表6 二进制函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 EMPTY_BLOB 支持 - 表7 层次函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 SYS_CONNECT_BY_PATH 不支持 - 表8 XML类型函数 序号 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子句。 表9 编码解码函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 DECODE 支持 - 2 DUMP 支持,有差异 数值和时间类型返回结果和Oracle数据库不一致。 3 ORA_HASH 支持,有差异 时间类型的入参转换成字符串类型再进行hash。 不支持maxbucket参数。 4 VSIZE 支持,有差异 数值和时间类型返回结果和Oracle数据库不一致。 表10 空值相关的函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 COALESCE 支持 - 2 LNNVL 支持,有差异 入参condition不完全一致。 3 NULLIF 支持 - 4 NVL 支持 - 5 NVL2 支持 - 表11 环境和标识符函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 SYS_CONTEXT 支持,有差异 有一些GaussDB无法支持的返回值做了空值处理。 2 USER 支持,有差异 返回值类型不一致。 表12 聚合函数 序号 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函数,兼容此功能。 表13 分析函数 序号 Oracle数据库函数 GaussDB数据库是否支持 差异 1 FIRST_VALUE 支持 - 2 LAG 支持 - 3 LAST_VALUE 支持 - 4 LEAD 支持 - 5 NTH_VALUE 支持 - 6 NTILE 支持 - 7 ROW_NUMBER 支持 - 8 RATIO_TO_REPORT 支持 -
  • SQL查询和子查询 GaussDB数据库兼容除分层查询以外的SQL查询和子查询。 表1 SQL查询和子查询 序号 Oracle数据库 GaussDB数据库 差异 1 创建简单查询 支持。 - 2 分层查询 支持,有差异。 仅支持Oracle中的connect_by_filtering模式,不支持connect_by_nofiltering 3 UNION [ALL],INTERSECT,减运算符 支持。 - 4 查询结果排序 支持。 - 5 Joins 支持,有差异。 - 6 使用子查询 支持。 - 7 嵌套子查询的解嵌套 支持,有差异。 GaussDB不支持显式指定HASH_AJ或MERGE_AJ。 8 从dual表中选择 支持,有差异。 GaussDB中为SYS_DUMMY表。 9 分布式查询 支持,有差异。 GaussDB需要显式DBLINK查询。 父主题: 主备版
  • trigger 表34 trigger类型 序号 Oracle数据库 GaussDB数据库 差异 1 DML TRIGGER 支持,有差异 不支持Compound DML Triggers。 2 SYSTEM TRIGGER 不支持 - 表35 create trigger 语法类型 Oracle数据库 GaussDB数据库 差异 create语法 CREATE [ OR REPLACE ] [ EDITIONABLE | NONEDITIONABLE ] TRIGGER plsql_trigger_source 支持,有差异 不支持OR REPLACE 、EDITIONABLE | NONEDITIONABLE、plsql_trigger_source部分支持。 plsql_trigger_source ::= [schema.] trigger_name [ sharing_clause ] [ default_collation_clause ] { simple_dml_trigger | instead_of_dml_trigger | compound_dml_trigger | system_trigger } 支持,有差异 不支持schema、 sharing_clause、default_collation_clause。 simple_dml_trigger ::= { BEFORE | AFTER } dml_event_clause [ referencing_clause ] [ FOR EACH ROW ] [ trigger_edition_clause ] [ trigger_ordering_clause ] [ ENABLE | DISABLE ] [ WHEN ( condition ) ] trigger_body 支持,有差异 不支持referencing_clause、referencing_clause(用from referencing_table代替)、trigger_edition_clause、trigger_ordering_clause、 ENABLE | DISABLE;部分支持trigger_body。 dml_event_clause ::= { DELETE | INSERT | UPDATE [ OF column [, column ]... ] } [ OR { DELETE | INSERT | UPDATE [ OF column [, column]... ] }... ON [ schema.] { table | view } 不支持 - trigger_body ::= { plsql_block | CALL routine_clause } 支持,有差异 不支持plsql_block,仅支持EXECUTE PROCEDURE function_name ( arguments );方式执行func,并且func需要用户定义,必须声明为不带参数并返回类型为触发器,在触发器触发时执行。 instead_of_dml_trigger ::= INSTEAD OF { DELETE | INSERT | UPDATE } [ OR { DELETE | INSERT | UPDATE } ]... ON [ NESTED TABLE nested_table_column OF ] [ schema. ] noneditioning_view [ referencing_clause ] [ FOR EACH ROW ] [ trigger_edition_clause ] [ trigger_ordering_clause ] [ ENABLE | DISABLE ] trigger_body 支持,有差异 不支持NESTED TABLE nested_table_column OF、referencing_clause、trigger_edition_clause、trigger_ordering_clause、ENABLE | DISABLE。 compound_dml_trigger ::= CREATE trigger FOR dml_event_clause ON view COMPOUND TRIGGER INSTEAD OF EACH ROW IS BEGIN statement; END INSTEAD OF EACH ROW; 不支持 - system_trigger ::= { BEFORE | AFTER | INSTEAD OF } { ddl_event [OR ddl_event]... | database_event [OR database_event ]... } ON { [schema.] SCHEMA | [ PLUGGABLE ] DATABASE } [ trigger_ordering_clause ] [ ENABLE | DISABLE ] trigger_body 不支持 - 表36 alter trigger 序号 Oracle数据库 GaussDB数据库 差异 1 ALTER TRIGGER [ schema. ] trigger_name { trigger_compile_clause | { ENABLE | DISABLE } | RENAME TO new_name | { EDITIONABLE | NONEDITIONABLE } } ; 支持,有差异 不支持schema、trigger_compile_clause、{ ENABLE | DISABLE }、{ EDITIONABLE | NONEDITIONABLE }。 表37 drop trigger 序号 Oracle数据库 GaussDB数据库 差异 1 DROP TRIGGER [ schema. ] trigger ; 支持,有差异 不支持schema。 Oracle数据库名为*_TRIGGERS的视图统计了trigger的相关信息,视图具体差异参考系统视图章节。 表38 Nested, Package, and Standalone Subprograms 兼容性 序号 Oracle数据库 GaussDB数据库 差异 1 nested subprogram(子块) 支持,有差异 不支持重载,不支持定义为自治事务,不支持SETOF的使用,仅限一个限定符引用嵌套子程序或嵌套子程序的变量。 2 package subprogram 支持 - 3 standalone subprogram(包含Function & Procedure) 支持 - 4 匿名块 支持 - 表39 RETURN语句支持情况 序号 Oracle数据库 GaussDB数据库 差异 1 Function 支持 - 2 Procedure 支持 - 3 匿名块 支持 - 表40 Function相关参数 序号 Oracle数据库 GaussDB数据库 差异 1 DETERMINISTIC 支持,有差异 GaussDB中为IMMUTABLE。 2 PARALLEL_ENABLE 不支持 - 3 PIPELINED 不支持 - 4 RESULT_CACHE 不支持 - 表41 参数形式支持 序号 Oracle数据库 GaussDB数据库 差异 1 IN 支持 - 2 OUT 支持 - 3 IN OUT 支持 - 表42 CREATE语句 序号 Oracle数据库 GaussDB数据库 差异 1 CREATE FUNCTION 支持 - 2 CREATE LIBRARY 不支持 - 3 CREATE PACKAGE 支持 - 4 CREATE PACKAGE BODY 支持 - 5 CREATE PROCEDURE 支持 - 6 CREATE TRIGGER 支持 - 7 CREATE TYPE 支持,有差异 支持类型不同。 8 CREATE TYPE BODY 不支持 - 表43 ALTER语句 序号 Oracle数据库 GaussDB数据库 差异 1 ALTER FUNCTION 支持 - 2 ALTER LIBRARY 不支持 - 3 ALTER PACKAGE 支持 - 4 ALTER PROCEDURE 支持 - 5 ALTER TRIGGER 支持 - 6 ALTER TYPE 支持 - 表44 DROP语句 序号 Oracle数据库 GaussDB数据库 差异 1 DROP FUNCTION 支持 - 2 DROP LIBRARY 不支持 - 3 DROP PACKAGE 支持 - 4 DROP PROCEDURE 支持 - 5 DROP TRIGGER 支持 - 6 DROP TYPE 支持 - 7 DROP TYPE BODY 不支持 - 表45 Function、Procedure、匿名块相关关键字 序号 Oracle数据库 GaussDB数据库 差异 1 ACCESSIBLE BY 不支持 - 2 AGGREGATE 支持 - 3 DETERMINISTIC 支持,有差异 - 4 PIPE ROW 不支持 - 5 PIPELINED 不支持 - 6 SQL_MACRO 不支持 - 7 RESTRICT_REFERENCES 不支持 - 8 INLINE 支持,有差异 - 表46 异常处理相关关键字 序号 Oracle数据库 GaussDB数据库 差异 1 EXCEPTION_INIT 支持,有差异 不支持与系统错误码进行绑定。 2 Exception 支持 - 3 Exception Handler 支持 - 4 SQLCODE 支持 - 5 SQLERRM 支持 - 表47 其他PL/SQL关键字 序号 Oracle数据库 GaussDB数据库 差异 1 COVERAGE 不支持 - 2 COLLATION 支持 - 3 DEPRECATE 不支持 - 4 FORALL 支持 - 5 NOCOPY 不支持 - 6 RETURNING INTO 支持,有差异 列存表不支持 7 SERIALLY_REUSABLE 不支持 - 8 SHARING 不支持 - 9 UDF 支持,有差异 java UDF只支持分布式 10 BULK COLLECT 支持 -
  • 静态SQL 表24 静态查询 SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 SELECT 支持,有差异 FOR SHARE对检索出来的行加共享锁,不同事务的共享锁不会互相阻塞,若数据在一个事务中被FOR SHARE锁定,在另一个事务中使用SELECT FOR SHARE SKIP LOCKED时,SKIP LOCKED不会跳过锁。 表25 静态DML SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 INSERT 支持 - 2 UPDATE 支持 - 3 DELETE 支持 - 4 MERGE 支持 - 5 LOCK TABLE 支持 - 表26 静态TCL SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 COMMIT 支持 - 2 ROLLBACK 支持 - 3 SAVEPOINT 支持 - 4 SET TRANSACTION 支持,有差异 - 表27 伪列 序号 Oracle数据库 GaussDB数据库 差异 1 CURRVAL and NEXTVAL 支持 - 2 LEVEL 支持 - 3 OBJECT_VALUE 不支持 - 4 ROWID 不支持 - 5 ROWNUM 支持,有差异 不推荐ROWNUM条件用于JOIN ON子句,GaussDB中ROWNUM条件用于JOIN ON子句时在LEFT JOIN、RIGHT JOIN、FULL JOIN场景下和MERGE INTO场景下与其他数据库行为不一致,直接进行业务迁移存在风险。 表28 隐式游标属性 序号 Oracle数据库 GaussDB数据库 差异 1 SQL%FOUND 支持 - 2 SQL%NOTFOUND 支持 - 3 SQL%ROWCOUNT 支持 - 4 SQL%ISOPEN 支持 - 5 SQL%BULK_ROWCOUNT 不支持 - 6 SQL%BULK_EXCEPTIONS 不支持 - 表29 显式游标语法及关键字 序号 Oracle数据库 GaussDB数据库 差异 1 CURSOR cursor_name [ parameter_list ] RETURN return_type; 支持 - 2 CURSOR cursor_name [ parameter_list ] [ RETURN return_type ] IS select_statement; 支持 - 3 OPEN 支持 - 4 CLOSE 支持 - 5 FETCH 支持 - 6 CURRENT OF CURSOR 支持 - 表30 显式游标属性 序号 Oracle数据库 GaussDB数据库 差异 1 SQL%FOUND 支持 - 2 SQL%NOTFOUND 支持 - 3 SQL%ROWCOUNT 支持 - 4 SQL%ISOPEN 支持 - 表31 游标循环 序号 Oracle数据库 GaussDB数据库 差异 1 FOR LOOP 支持 - 表32 自治事务支持场景 序号 Oracle数据库 GaussDB数据库 差异 1 存储过程 支持 - 2 匿名块 支持 - 3 函数 支持 - 4 Package 支持 -
  • 控制语句 表8 条件语句 序号 Oracle数据库 GaussDB数据库 差异 1 IF THEN 支持 - 2 IF THEN ELSE 支持 - 3 IF THEN ELSIF 支持 - 4 simple CASE: CASE selector WHEN selector_value_1 THEN statements_1 WHEN selector_value_2 THEN statements_2 ... WHEN selector_value_n THEN statements_n [ ELSE else_statements END CASE;] 支持 - 5 searched CASE: CASE WHEN condition_1 THEN statements_1 WHEN condition_2 THEN statements_2 ... WHEN condition_n THEN statements_n [ ELSE else_statements END CASE;] 支持 - 表9 LOOP循环语句 序号 Oracle数据库 GaussDB数据库 差异 1 [ label ] LOOP statements END LOOP [ label ]; 支持 - 2 EXIT; 支持 - 3 EXIT WHEN; 支持 - 4 CONTINUE; 支持 - 5 CONTINUE WHEN; 支持 - 表10 FOR循环语句 序号 Oracle数据库 GaussDB数据库 差异 1 [ label ] FOR index IN [ REVERSE ] lower_bound..upper_bound LOOP statements END LOOP [ label ]; 支持 - 2 EXIT WHEN; 支持 - 3 CONTINUE WHEN; 支持 - 表11 WHILE LOOP循环语句 序号 Oracle数据库 GaussDB数据库 差异 1 [ label ] WHILE condition LOOP statements END LOOP [ label ]; 支持 - 表12 GOTO语句 序号 Oracle数据库 GaussDB数据库 差异 1 GOTO 支持 - 表13 NULL语句 序号 Oracle数据库 GaussDB数据库 差异 1 NULL 支持 -
  • 高级包 GaussDB数据库兼容了部分Oracle数据库的高级包,兼容的详细列表如下。 更多高级包信息请参考开发者指南中高级包章节。 表1 高级包支持列表 序号 Oracle数据库 GaussDB数据库 差异 1 DBMS_LOB DBE_LOB 包内部分函数存在差异。 2 DBMS_RANDOM DBE_RANDOM 包内部分函数存在差异。 3 DBMS_OUTPUT DBE_OUTPUT 包内部分函数存在差异。 4 UTL_RAW DBE_RAW 包内部分函数存在差异。 5 DBMS_SCHEDULER DBE_SCHEDULER 包内部分函数存在差异。 6 DBMS_UTILITY DBE_UTILITY 包内部分函数存在差异。 7 DBMS_SQL DBE_SQL 包内部分函数存在差异。 8 UTL_FILE DBE_FILE 包内部分函数存在差异。 9 DBMS_SESSION DBE_SESSION 包内部分函数存在差异。 10 UTL_MATCH DBE_MATCH 包内部分函数存在差异。 11 DBMS_APPLICATION_INFO DBE_APPLICATION_INFO 包内部分函数存在差异。 12 DBMS_XMLDOM DBE_XMLDOM 包内部分函数存在差异。 13 DBMS_XMLPARSER DBE_XMLPARSER 包内部分函数存在差异。 14 DBMS_ILM DBE_ILM 包内部分函数存在差异。 15 DBMS_ILM_ADMIN DBE_ILM_ADMIN 包内部分函数存在差异。 16 DBMS_COMPRESSION DBE_COMPRESSION 包内部分函数存在差异。 17 DBMS_HEAT_MAP DBE_HEAT_MAP 包内部分函数存在差异。 父主题: 分布式
  • 高级包 GaussDB数据库兼容的高级包如表1所示。 表1 支持高级包列表 序号 Oracle数据库 GaussDB数据库 差异 1 DBMS_LOB DBE_LOB 包内部分函数存在差异。 2 DBMS_RANDOM DBE_RANDOM 包内部分函数存在差异。 3 DBMS_OUTPUT DBE_OUTPUT 包内部分函数存在差异。 4 UTL_RAW DBE_RAW 包内部分函数存在差异。 5 DBMS_SCHEDULER DBE_SCHEDULER 包内部分函数存在差异。 6 DBMS_UTILITY DBE_UTILITY 包内部分函数存在差异。 7 DBMS_SQL DBE_SQL 包内部分函数存在差异。 8 UTL_FILE DBE_FILE 包内部分函数存在差异。 9 DBMS_SESSION DBE_SESSION 包内部分函数存在差异。 10 UTL_MATCH DBE_MATCH 包内部分函数存在差异。 11 DBMS_APPLICATION_INFO DBE_APPLICATION_INFO 包内部分函数存在差异。 12 DBMS_XMLDOM DBE_XMLDOM 包内部分函数存在差异。 13 DBMS_XMLPARSER DBE_XMLPARSER 包内部分函数存在差异。 14 DBMS_ILM DBE_ILM 包内部分函数存在差异。 15 DBMS_ILM_ADMIN DBE_ILM_ADMIN 包内部分函数存在差异。 16 DBMS_COMPRESSION DBE_COMPRESSION 包内部分函数存在差异。 17 DBMS_HEAT_MAP DBE_HEAT_MAP 包内部分函数存在差异。 父主题: 主备版
  • trigger 表34 trigger类型 序号 Oracle数据库 GaussDB数据库 差异 1 DML TRIGGER 支持,有差异 不支持Compound DML Triggers。 2 SYSTEM TRIGGER 不支持 - 表35 create trigger 语法类型 Oracle数据库 GaussDB数据库 差异 create语法 CREATE [ OR REPLACE ] [ EDITIONABLE | NONEDITIONABLE ] TRIGGER plsql_trigger_source 支持,有差异 不支持OR REPLACE 、EDITIONABLE | NONEDITIONABLE、plsql_trigger_source部分支持。 plsql_trigger_source ::= [schema.] trigger_name [ sharing_clause ] [ default_collation_clause ] { simple_dml_trigger | instead_of_dml_trigger | compound_dml_trigger | system_trigger } 支持,有差异 不支持schema、 sharing_clause、default_collation_clause。 simple_dml_trigger ::= { BEFORE | AFTER } dml_event_clause [ referencing_clause ] [ FOR EACH ROW ] [ trigger_edition_clause ] [ trigger_ordering_clause ] [ ENABLE | DISABLE ] [ WHEN ( condition ) ] trigger_body 支持,有差异 不支持referencing_clause、referencing_clause(用from referencing_table代替)、trigger_edition_clause、trigger_ordering_clause、 ENABLE | DISABLE;部分支持trigger_body。 dml_event_clause ::= { DELETE | INSERT | UPDATE [ OF column [, column ]... ] } [ OR { DELETE | INSERT | UPDATE [ OF column [, column]... ] }... ON [ schema.] { table | view } 不支持 - trigger_body ::= { plsql_block | CALL routine_clause } 支持,有差异 不支持plsql_block,仅支持EXECUTE PROCEDURE function_name ( arguments );方式执行func,并且func需要用户定义,必须声明为不带参数并返回类型为触发器,在触发器触发时执行。 instead_of_dml_trigger ::= INSTEAD OF { DELETE | INSERT | UPDATE } [ OR { DELETE | INSERT | UPDATE } ]... ON [ NESTED TABLE nested_table_column OF ] [ schema. ] noneditioning_view [ referencing_clause ] [ FOR EACH ROW ] [ trigger_edition_clause ] [ trigger_ordering_clause ] [ ENABLE | DISABLE ] trigger_body 支持,有差异 不支持NESTED TABLE nested_table_column OF、referencing_clause、trigger_edition_clause、trigger_ordering_clause、ENABLE | DISABLE。 compound_dml_trigger ::= CREATE trigger FOR dml_event_clause ON view COMPOUND TRIGGER INSTEAD OF EACH ROW IS BEGIN statement; END INSTEAD OF EACH ROW; 不支持 - system_trigger ::= { BEFORE | AFTER | INSTEAD OF } { ddl_event [OR ddl_event]... | database_event [OR database_event ]... } ON { [schema.] SCHEMA | [ PLUGGABLE ] DATABASE } [ trigger_ordering_clause ] [ ENABLE | DISABLE ] trigger_body 不支持 - 表36 alter trigger 序号 Oracle数据库 GaussDB数据库 差异 1 ALTER TRIGGER [ schema. ] trigger_name { trigger_compile_clause | { ENABLE | DISABLE } | RENAME TO new_name | { EDITIONABLE | NONEDITIONABLE } } ; 支持,有差异 不支持schema、trigger_compile_clause、{ ENABLE | DISABLE }、{ EDITIONABLE | NONEDITIONABLE }。 表37 drop trigger 序号 Oracle数据库 GaussDB数据库 差异 1 DROP TRIGGER [ schema. ] trigger ; 支持,有差异 不支持schema。 Oracle数据库名为*_TRIGGERS的视图统计了trigger的相关信息,视图具体差异参考系统视图章节。 表38 Nested, Package, and Standalone Subprograms 兼容性 序号 Oracle数据库 GaussDB数据库 差异 1 nested subprogram(子块) 支持,有差异 不支持重载,不支持定义为自治事务,不支持SETOF的使用,仅限一个限定符引用嵌套子程序或嵌套子程序的变量。 2 package subprogram 支持 - 3 standalone subprogram(包含Function & Procedure) 支持 - 4 匿名块 支持 - 表39 RETURN语句支持情况 序号 Oracle数据库 GaussDB数据库 差异 1 Function 支持 - 2 Procedure 支持 - 3 匿名块 支持 - 表40 Function相关参数 序号 Oracle数据库 GaussDB数据库 差异 1 DETERMINISTIC 支持,有差异 GaussDB中为IMMUTABLE 2 PARALLEL_ENABLE 不支持 - 3 PIPELINED 不支持 - 4 RESULT_CACHE 不支持 - 表41 参数形式支持 序号 Oracle数据库 GaussDB数据库 差异 1 IN 支持 - 2 OUT 支持 - 3 IN OUT 支持 - 表42 CREATE语句 序号 Oracle数据库 GaussDB数据库 差异 1 CREATE FUNCTION 支持 - 2 CREATE LIBRARY 不支持 - 3 CREATE PACKAGE 支持 - 4 CREATE PACKAGE BODY 支持 - 5 CREATE PROCEDURE 支持 - 6 CREATE TRIGGER 支持 - 7 CREATE TYPE 支持,有差异 支持类型不同。 8 CREATE TYPE BODY 不支持 - 表43 ALTER语句 序号 Oracle数据库 GaussDB数据库 差异 1 ALTER FUNCTION 支持 - 2 ALTER LIBRARY 不支持 - 3 ALTER PACKAGE 支持 - 4 ALTER PROCEDURE 支持 - 5 ALTER TRIGGER 支持 - 6 ALTER TYPE 支持 - 表44 DROP语句 序号 Oracle数据库 GaussDB数据库 差异 1 DROP FUNCTION 支持 - 2 DROP LIBRARY 不支持 - 3 DROP PACKAGE 支持 - 4 DROP PROCEDURE 支持 - 5 DROP TRIGGER 支持 - 6 DROP TYPE 支持 - 7 DROP TYPE BODY 不支持 - 表45 Function、Procedure、匿名块相关关键字 序号 Oracle数据库 GaussDB数据库 差异 1 ACCESSIBLE BY 不支持 - 2 AGGREGATE 支持 - 3 DETERMINISTIC 支持,有差异 - 4 PIPE ROW 不支持 - 5 PIPELINED 不支持 - 6 SQL_MACRO 不支持 - 7 RESTRICT_REFERENCES 不支持 - 8 INLINE 支持,有差异 - 表46 异常处理相关关键字 序号 Oracle数据库 GaussDB数据库 差异 1 EXCEPTION_INIT 支持,有差异 GaussDB不支持与系统错误码进行绑定 2 Exception 支持 - 3 Exception Handler 支持 - 4 SQLCODE 支持 - 5 SQLERRM 支持 - 表47 其他PL/SQL关键字 序号 Oracle数据库 GaussDB数据库 差异 1 COVERAGE 不支持 - 2 COLLATION 支持 - 3 DEPRECATE 不支持 - 4 FORALL 支持 - 5 NOCOPY 不支持 - 6 RETURNING INTO 支持,有差异 列存表不支持 7 SERIALLY_REUSABLE 不支持 - 8 SHARING 不支持 - 9 UDF 支持,有差异 java UDF只支持分布式 10 BULK COLLECT 支持 -
  • 静态SQL 表24 静态查询 SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 SELECT 支持,有差异 不同事务中的共享锁在如下场景中不会互相阻塞: SELECT FOR SHARE - SELECT FOR SHARE; SELECT FOR SHARE - SELECT FOR KEY SHARE; SELECT FOR KEY SHARE - SELECT FOR KEY SHARE; SELECT FOR KEY SHARE - SELECT FOR NO KEY UPDATE; 上述场景中,由于锁与锁之间未阻塞,对在其他事务中存在非阻塞锁的数据指定SKIP LOCKED时,锁不会被跳过。 表25 静态DML SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 INSERT 支持 - 2 UPDATE 支持 - 3 DELETE 支持 - 4 MERGE 支持 - 5 LOCK TABLE 支持 - 表26 静态TCL SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 COMMIT 支持 - 2 ROLLBACK 支持 - 3 SAVEPOINT 支持 - 4 SET TRANSACTION 支持,有差异 - 表27 伪列 序号 Oracle数据库 GaussDB数据库 差异 1 CURRVAL and NEXTVAL 支持 - 2 LEVEL 支持 - 3 OBJECT_VALUE 不支持 - 4 ROWID 不支持 - 5 ROWNUM 支持,有差异 不推荐ROWNUM条件用于JOIN ON子句,GaussDB中ROWNUM条件用于JOIN ON子句时在LEFT JOIN、RIGHT JOIN、FULL JOIN场景下和MERGE INTO场景下与其他数据库行为不一致,直接进行业务迁移存在风险。 表28 隐式游标属性 序号 Oracle数据库 GaussDB数据库 差异 1 SQL%FOUND 支持 - 2 SQL%NOTFOUND 支持 - 3 SQL%ROWCOUNT 支持 - 4 SQL%ISOPEN 支持 - 5 SQL%BULK_ROWCOUNT 不支持 - 6 SQL%BULK_EXCEPTIONS 不支持 - 表29 显式游标语法及关键字 序号 Oracle数据库 GaussDB数据库 差异 1 CURSOR cursor_name [ parameter_list ] RETURN return_type; 支持 - 2 CURSOR cursor_name [ parameter_list ] [ RETURN return_type ] IS select_statement; 支持 - 3 OPEN 支持 - 4 CLOSE 支持 - 5 FETCH 支持 - 6 CURRENT OF CURSOR 支持 - 表30 显式游标属性 序号 Oracle数据库 GaussDB数据库 差异 1 SQL%FOUND 支持 - 2 SQL%NOTFOUND 支持 - 3 SQL%ROWCOUNT 支持 - 4 SQL%ISOPEN 支持 - 表31 游标循环 序号 Oracle数据库 GaussDB数据库 差异 1 FOR LOOP 支持 - 表32 自治事务支持场景 序号 Oracle数据库 GaussDB数据库 差异 1 存储过程 支持 - 2 匿名块 支持 - 3 函数 支持 - 4 Package 支持 -
  • 控制语句 表8 条件语句 序号 Oracle数据库 GaussDB数据库 差异 1 IF THEN 支持 - 2 IF THEN ELSE 支持 - 3 IF THEN ELSIF 支持 - 4 simple CASE: CASE selector WHEN selector_value_1 THEN statements_1 WHEN selector_value_2 THEN statements_2 ... WHEN selector_value_n THEN statements_n [ ELSE else_statements END CASE;] 支持 - 5 searched CASE: CASE WHEN condition_1 THEN statements_1 WHEN condition_2 THEN statements_2 ... WHEN condition_n THEN statements_n [ ELSE else_statements END CASE;] 支持 - 表9 LOOP循环语句 序号 Oracle数据库 GaussDB数据库 差异 1 [ label ] LOOP statements END LOOP [ label ]; 支持 - 2 EXIT; 支持 - 3 EXIT WHEN; 支持 - 4 CONTINUE; 支持 - 5 CONTINUE WHEN; 支持 - 表10 FOR循环语句 序号 Oracle数据库 GaussDB数据库 差异 1 [ label ] FOR index IN [ REVERSE ] lower_bound..upper_bound LOOP statements END LOOP [ label ]; 支持 - 2 EXIT WHEN; 支持 - 3 CONTINUE WHEN; 支持 - 表11 WHILE LOOP循环语句 序号 Oracle数据库 GaussDB数据库 差异 1 [ label ] WHILE condition LOOP statements END LOOP [ label ]; 支持 - 表12 GOTO语句 序号 Oracle数据库 GaussDB数据库 差异 1 GOTO 支持 - 表13 NULL语句 序号 Oracle数据库 GaussDB数据库 差异 1 NULL 支持 -
  • 系统视图 GaussDB数据库兼容了部分Oracle数据库的系统视图,兼容的详细列表如下。 更多系统视图的字段说明信息请参考《开发者指南》中“系统视图”章节。 表1 系统视图支持列表 序号 Oracle数据库 GaussDB数据库 差异 1 ALL_ALL_TABLES DB_ALL_TABLES 仅支持部分列 2 ALL_COL_PRIVS DB_COL_PRIVS 仅支持部分列 3 ALL_COLL_TYPES DB_COLL_TYPES 仅支持部分列 4 ALL_IND_COLUMNS DB_IND_COLUMNS - 5 ALL_COL_COMMENTS DB_COL_COMMENTS 仅支持部分列 6 ALL_CONS_COLUMNS DB_CONS_COLUMNS - 7 ALL_CONSTRAINTS DB_CONSTRAINTS 仅支持部分列 8 ALL_DEPENDENCIES DB_DEPENDENCIES 仅支持部分列 9 ALL_IND_EXPRESSIONS DB_IND_EXPRESSIONS - 10 ALL_IND_PARTITIONS DB_IND_PARTITIONS 仅支持部分列 11 ALL_INDEXES DB_INDEXES 仅支持部分列 12 ALL_IND_SUBPARTITIONS DB_IND_SUBPARTITIONS 仅支持部分列 13 ALL_OBJECTS DB_OBJECTS 仅支持部分列 14 ALL_PART_COL_STATISTICS DB_PART_COL_STATISTICS 仅支持部分列 15 ALL_PART_KEY_COLUMNS DB_PART_KEY_COLUMNS 仅支持部分列 16 ALL_PART_TABLES DB_PART_TABLES 仅支持部分列 17 ALL_SCHEDULER_JOB_ARGS DB_SCHEDULER_JOB_ARGS 仅支持部分列 18 ALL_SCHEDULER_PROGRAM_ARGS DB_SCHEDULER_PROGRAM_ARGS 仅支持部分列 19 ALL_SEQUENCES DB_SEQUENCES 仅支持部分列 20 ALL_SUBPART_KEY_COLUMNS DB_SUBPART_KEY_COLUMNS 仅支持部分列 21 ALL_SYNONYMS DB_SYNONYMS 仅支持部分列 22 ALL_TAB_COL_STATISTICS DB_TAB_COL_STATISTICS 仅支持部分列 23 ALL_TAB_COMMENTS DB_TAB_COMMENTS 仅支持部分列 24 ALL_TAB_HISTOGRAMS DB_TAB_HISTOGRAMS 仅支持部分列 25 ALL_TAB_STATS_HISTORY DB_TAB_STATS_HISTORY 仅支持部分列 26 ALL_TYPES DB_TYPES 仅支持部分列 27 ALL_PROCEDURES DB_PROCEDURES - 28 ALL_SOURCE DB_SOURCE 仅支持部分列 29 ALL_TAB_COLUMNS DB_TAB_COLUMNS 仅支持部分列 30 ALL_TAB_PARTITIONS DB_TAB_PARTITIONS 仅支持部分列 31 ALL_TAB_SUBPARTITIONS DB_TAB_SUBPARTITIONS 仅支持部分列 32 ALL_TABLES DB_TABLES 仅支持部分列 33 ALL_TRIGGERS DB_TRIGGERS - 34 ALL_USERS DB_USERS - 35 ALL_VIEWS DB_VIEWS 仅支持部分列 36 DBA_AUDIT_OBJECT ADM_AUDIT_OBJECT 仅支持部分列 37 DBA_AUDIT_SESSION ADM_AUDIT_SESSION 仅支持部分列 38 DBA_AUDIT_STATEMENT ADM_AUDIT_STATEMENT 仅支持部分列 39 DBA_AUDIT_TRAIL ADM_AUDIT_TRAIL 仅支持部分列 40 DBA_COL_COMMENTS ADM_COL_COMMENTS 仅支持部分列 41 DBA_COL_PRIVS ADM_COL_PRIVS 仅支持部分列 42 DBA_COLL_TYPES ADM_COLL_TYPES 仅支持部分列 43 DBA_ARGUMENTS ADM_ARGUMENTS 仅支持部分列 44 DBA_CONSTRAINTS ADM_CONSTRAINTS 仅支持部分列 45 DBA_DATA_FILES ADM_DATA_FILES 仅支持部分列 46 DBA_CONS_COLUMNS ADM_CONS_COLUMNS - 47 DBA_DEPENDENCIES ADM_DEPENDENCIES 仅支持部分列 48 DBA_DIRECTORIES ADM_DIRECTORIES 仅支持部分列 49 DBA_PART_COL_STATISTICS ADM_PART_COL_STATISTICS 仅支持部分列 50 DBA_PART_TABLES ADM_PART_TABLES 仅支持部分列 51 DBA_ROLE_PRIVS ADM_ROLE_PRIVS 仅支持部分列 52 DBA_ROLES ADM_ROLES 仅支持部分列 53 DBA_SCHEDULER_JOB_ARGS ADM_SCHEDULER_JOB_ARGS 仅支持部分列 54 DBA_SCHEDULER_PROGRAMS ADM_SCHEDULER_PROGRAMS 仅支持部分列 55 DBA_SCHEDULER_PROGRAM_ARGS ADM_SCHEDULER_PROGRAM_ARGS 仅支持部分列 56 DBA_HIST_SNAPSHOT ADM_HIST_SNAPSHOT 仅支持部分列 57 DBA_HIST_SQL_PLAN ADM_HIST_SQL_PLAN 仅支持部分列 58 DBA_HIST_SQLSTAT ADM_HIST_SQLSTAT 仅支持部分列 59 DBA_HIST_SQLTEXT ADM_HIST_SQLTEXT 仅支持部分列 60 DBA_ILMDATAMOVEMENTPOLICIES GS_ADM_ILMDATAMOVEMENTPOLICIES 仅支持部分列 61 DBA_ILMEVALUATIONDETAILS GS_ADM_ILMEVALUATIONDETAILS 仅支持部分列 62 DBA_ILMOBJECTS GS_ADM_ILMOBJECTS 仅支持部分列 63 DBA_ILMPARAMETERS GS_ADM_ILMPARAMETERS 仅支持部分列 64 DBA_ILMPOLICIES GS_ADM_ILMPOLICIES 仅支持部分列 65 DBA_ILMRESULTS GS_ADM_ILMRESULTS - 66 DBA_ILMTASKS GS_ADM_ILMTASKS - 67 DBA_IND_COLUMNS ADM_IND_COLUMNS 仅支持部分列 68 DBA_IND_EXPRESSIONS ADM_IND_EXPRESSIONS - 69 DBA_IND_PARTITIONS ADM_IND_PARTITIONS 仅支持部分列 70 DBA_INDEXES ADM_INDEXES 仅支持部分列 71 DBA_OBJECTS ADM_OBJECTS 仅支持部分列 72 DBA_PART_INDEXES ADM_PART_INDEXES - 73 DBA_PROCEDURES ADM_PROCEDURES 仅支持部分列 74 DBA_SCHEDULER_JOBS ADM_SCHEDULER_JOBS 仅支持部分列 75 DBA_SCHEDULER_RUNNING_JOBS ADM_SCHEDULER_RUNNING_JOBS 仅支持部分列 76 DBA_SEGMENTS ADM_SEGMENTS 仅支持部分列 77 DBA_SEQUENCES ADM_SEQUENCES - 78 DBA_SOURCE ADM_SOURCE 仅支持部分列 79 DBA_IND_SUBPARTITIONS ADM_IND_SUBPARTITIONS 仅支持部分列 80 DBA_SUBPART_KEY_COLUMNS ADM_SUBPART_KEY_COLUMNS 仅支持部分列 81 DBA_SYS_PRIVS ADM_SYS_PRIVS 仅支持部分列 82 DBA_TAB_COL_STATISTICS ADM_TAB_COL_STATISTICS 仅支持部分列 83 DBA_TAB_HISTOGRAMS ADM_TAB_HISTOGRAMS 仅支持部分列 84 DBA_TAB_STATISTICS ADM_TAB_STATISTICS 仅支持部分列 85 DBA_TAB_STATS_HISTORY ADM_TAB_STATS_HISTORY 仅支持部分列 86 DBA_TABLESPACES ADM_TABLESPACES 仅支持部分列 87 DBA_TYPES ADM_TYPES 仅支持部分列 88 DBA_USERS ADM_USERS 仅支持部分列 89 DBA_SYNONYMS ADM_SYNONYMS - 90 DBA_TAB_COLS ADM_TAB_COLS 仅支持部分列 91 DBA_TAB_COLUMNS ADM_TAB_COLUMNS 仅支持部分列 92 DBA_TAB_COMMENTS ADM_TAB_COMMENTS - 93 DBA_TABLES ADM_TABLES 仅支持部分列 94 DBA_TAB_PARTITIONS ADM_TAB_PARTITIONS 仅支持部分列 95 DBA_TAB_SUBPARTITIONS ADM_TAB_SUBPARTITIONS - 96 DBA_TRIGGERS ADM_TRIGGERS 仅支持部分列 97 DBA_TYPE_ATTRS ADM_TYPE_ATTRS - 98 DBA_VIEWS ADM_VIEWS 仅支持部分列 99 ROLE_ROLE_PRIVS ROLE_ROLE_PRIVS 仅支持部分列 100 ROLE_SYS_PRIVS ROLE_SYS_PRIVS 仅支持部分列 101 ROLE_TAB_PRIVS ROLE_TAB_PRIVS 仅支持部分列 102 USER_COL_COMMENTS MY_COL_COMMENTS 仅支持部分列 103 USER_COL_PRIVS MY_COL_PRIVS 仅支持部分列 104 USER_COLL_TYPES MY_COLL_TYPES 仅支持部分列 105 USER_CONSTRAINTS MY_CONSTRAINTS - 106 USER_DEPENDENCIES MY_DEPENDENCIES - 107 DICT DICT - 108 DICTIONARY DICTIONARY - 109 NLS_DATABASE_PARAMETERS NLS_DATABASE_PARAMETERS - 110 NLS_INSTANCE_PARAMETERS NLS_INSTANCE_PARAMETERS - 111 PLAN_TABLE PLAN_TABLE 仅支持部分列 112 USER_ILMDATAMOVEMENTPOLICIES GS_MY_ILMDATAMOVEMENTPOLICIES 仅支持部分列 113 USER_ILMEVALUATIONDETAILS GS_MY_ILMEVALUATIONDETAILS 仅支持部分列 114 USER_ILMOBJECTS GS_MY_ILMOBJECTS 仅支持部分列 115 USER_ILMPOLICIES GS_MY_ILMPOLICIES 仅支持部分列 116 USER_ILMRESULTS GS_MY_ILMRESULTS - 117 USER_ILMTASKS GS_MY_ILMTASKS - 118 USER_IND_COLUMNS MY_IND_COLUMNS 仅支持部分列 119 USER_IND_EXPRESSIONS MY_IND_EXPRESSIONS - 120 USER_IND_PARTITIONS MY_IND_PARTITIONS 仅支持部分列 121 USER_IND_SUBPARTITIONS MY_IND_SUBPARTITIONS 仅支持部分列 122 USER_INDEXES MY_INDEXES 仅支持部分列 123 USER_JOBS MY_JOBS 仅支持部分列 124 USER_OBJECTS MY_OBJECTS 仅支持部分列 125 USER_PART_COL_STATISTICS MY_PART_COL_STATISTICS 仅支持部分列 126 USER_PART_INDEXES MY_PART_INDEXES - 127 USER_PART_TABLES MY_PART_TABLES 仅支持部分列 128 USER_PROCEDURES MY_PROCEDURES 仅支持部分列 129 USER_SCHEDULER_JOB_ARGS MY_SCHEDULER_JOB_ARGS 仅支持部分列 130 USER_SCHEDULER_PROGRAM_ARGS MY_SCHEDULER_PROGRAM_ARGS 仅支持部分列 131 USER_SEQUENCES MY_SEQUENCES - 132 USER_SOURCE MY_SOURCE 仅支持部分列 133 USER_SUBPART_KEY_COLUMNS MY_SUBPART_KEY_COLUMNS 仅支持部分列 134 USER_SYNONYMS MY_SYNONYMS 仅支持部分列 135 USER_SYS_PRIVS MY_SYS_PRIVS 仅支持部分列 136 USER_TAB_COL_STATISTICS MY_TAB_COL_STATISTICS 仅支持部分列 137 USER_TAB_COLUMNS MY_TAB_COLUMNS 仅支持部分列 138 USER_TAB_COMMENTS MY_TAB_COMMENTS - 139 USER_TAB_HISTOGRAMS MY_TAB_HISTOGRAMS 仅支持部分列 140 USER_TAB_PARTITIONS MY_TAB_PARTITIONS 仅支持部分列 141 USER_TAB_STATISTICS MY_TAB_STATISTICS 仅支持部分列 142 USER_TAB_STATS_HISTORY MY_TAB_STATS_HISTORY 仅支持部分列 143 USER_TABLES MY_TABLES 仅支持部分列 144 USER_TABLESPACES MY_TABLESPACES 仅支持部分列 145 USER_TRIGGERS MY_TRIGGERS 仅支持部分列 146 USER_TYPE_ATTRS MY_TYPE_ATTRS - 147 USER_TYPES MY_TYPES 仅支持部分列 148 USER_VIEWS MY_VIEWS 仅支持部分列 149 V$NLS_PARAMETERS V$NLS_PARAMETERS 仅支持部分列 150 V$SESSION_WAIT V$SESSION_WAIT 仅支持部分列 151 V$SYSSTAT V$SYSSTAT 仅支持部分列 152 V$SYSTEM_EVENT V$SYSTEM_EVENT 仅支持部分列 153 V$VERSION V$VERSION 仅支持部分列 154 V$INSTANCE V_INSTANCE 仅支持部分列 155 GV$INSTANCE GV_INSTANCE - 156 V$MYSTAT V_MYSTAT 仅支持部分列 157 V$SESSION V_SESSION 仅支持部分列 158 GV$SESSION GV_SESSION 仅支持部分列 159 V$SESSION_LONGOPS DV_SESSION_LONGOPS 仅支持部分列 160 V$SESSION DV_SESSIONS 仅支持部分列 161 ALL_ARGUMENTS DB_ARGUMENTS 仅支持部分列 162 USER_CONS_COLUMNS MY_CONS_COLUMNS - 163 USER_PART_KEY_COLUMNS MY_PART_KEY_COLUMNS 仅支持部分列 164 USER_ROLE_PRIVS MY_ROLE_PRIVS 仅支持部分列 165 DBA_TAB_PRIVS ADM_TAB_PRIVS 仅支持部分列 166 USER_SCHEDULER_JOBS MY_SCHEDULER_JOBS 仅支持部分列 167 V$LOCK V$LOCK 仅支持部分列 168 V$DBLINK V$DBLINK 仅支持部分列 169 V$GLOBAL_TRANSACTION V$GLOBAL_TRANSACTION 仅支持部分列 170 V$OPEN_CURSOR V$OPEN_CURSOR 仅支持部分列 171 V$GLOBAL_OPEN_CURSOR V$GLOBAL_OPEN_CURSOR 仅支持部分列 172 DB_TAB_PRIVS DB_TAB_PRIVS 仅支持部分列 173 DB_TAB_MODIFICATIONS DB_TAB_MODIFICATIONS 仅支持部分列 174 MY_TAB_MODIFICATIONS MY_TAB_MODIFICATIONS 仅支持部分列 175 USER_AUDIT_TRAIL MY_AUDIT_TRAIL 仅支持部分列 父主题: 分布式
  • Oracle数据库兼容性概述 本章节主要介绍GaussDB数据库的Oracle兼容模式与Oracle数据库19C版本的兼容性对比信息。具体的相关信息和规格约束请参考《开发者指南》相应章节。 GaussDB数据库在数据类型、SQL功能和数据库对象等基本功能上与Oracle数据库兼容,PLSQL方面也基本兼容。由于GaussDB数据库与Oracle数据库底层框架实现存在差异,GaussDB数据库与Oracle数据库仍存在部分差异。GaussDB与Oracle的兼容性如下文所示。 父主题: 分布式
  • 操作流程 创建函数 创建自定义的前端函数,使用函数服务开发自定义认证。 创建自定义认证 创建自定义认证,类型选择“前端”,函数地址选择上一步创建的函数。 创建API 安全配置中的安全认证选择APP认证,并勾选“支持双重认证”,选择上一步创建的自定义认证。 创建凭据 使用APP认证的API,需要在API网关中创建一个凭据,生成凭据ID和密钥对(Key、Secret)。 绑定API 将创建的凭据绑定API后,才可以使用APP认证调用API。 验证 调用API,验证双重认证是否设置成功。 父主题: API网关专享版双重认证
  • 操作流程 创建VPC 创建两个VPC,VPC1为API网关所在VPC,VPC2为后端应用所在VPC。 创建实例 在VPC1上创建API专享版实例。 创建弹性负载均衡 在VPC2上创建弹性负载均衡。 创建对等连接 创建VPC Peering对等连接,打通VPC1和VPC2。 配置路由 在API专享版实例上配置路由,配置IP为购买ELB所在VPC2网段。 创建API 创建API,后端服务地址配置ELB的IP。 创建ECS 选择VPC2为其VPC,并在其上部署后端应用服务,创建Elastic Cloud Server(应用服务器)。 调试API 验证对接内网ELB是否成功。 父主题: API网关专享版跨VPC开放后端服务
  • 操作流程 假设您对一个API有如下的流控诉求: 默认API流量限制为10次/60秒,用户流量限制为5次/60秒。 对请求头Header字段为“Host=www.abc.com”的限制为10次/60秒。 对请求方法为get且请求路径为“reqPath= /list”的限制为10次/60秒。 对请求路径为“reqPath= /fc”的限制为10次/60秒。 对特殊租户Special Renter的流量限制为5次/60秒。 您可以根据以下操作流程为API创建并绑定流量控制2.0策略。 创建策略 填写流量控制2.0策略基本信息。 配置基础流控 配置基础流量控制。 配置参数流控 开启参数流控配置开关,定义参数和规则配置参数流量控制。 配置特殊流控 开启特殊流控配置开关,特殊凭据与特殊租户流量控制的使用场景。 绑定API 流量控制2.0策略绑定到API。 验证 通过相应的请求URL调用API,验证流量控制2.0策略是否生效。 父主题: API网关专享版流量控制2.0策略
  • 方案描述 API前端定义中的请求协议支持HTTPS时,API所属分组在绑定独立 域名 后,还需为独立域名添加SSL证书。SSL证书是进行数据传输加密和身份证明的证书,当SSL证书带有CA证书时,默认开启客户端认证即双向认证;反之,开启单向认证。 单向认证:客户端与服务端连接时,客户端需要校验服务端SSl证书合法性。 双向认证:客户端与服务端连接时,除了客户端需要校验服务端SSl证书合法性,服务端也需要校验客户端SSl证书合法性。 父主题: 使用API网关专享版与客户端进行认证
  • 操作流程 APIG专享版支持单向认证和双向认证两种认证方式,两种认证方式开启认证的流程相同,下面描述单向认证流程,双向认证具体操作请参考双向认证。 创建SSL证书 SSL证书是进行数据传输加密和身份证明的证书。 绑定域名 将API所属的分组与已备案且解析的独立域名绑定。 绑定证书 将独立域名与已创建的SSL证书绑定。 调用API 验证API是否调用成功。 父主题: 使用API网关专享版与客户端进行认证
  • 修改基本信息 专享版实例创建后,您可能需要调整实例的一些配置,比如调大出公网的带宽,以便支撑更高的API请求流量。 登录管理控制台。 在管理控制台左上角单击,选择区域。 单击管理控制台左上角,然后单击“API网关 APIG”。 在左侧导航单击“专享版”,进入专享版实例列表页,单击“查看控制台”,进入API开发与调用管理页面。 在实例基本信息页签,找到您需要调整的基本信息项并进行修改。 表1 专享版实例基本信息修改 可修改项 说明 实例名称 填写实例的名称,根据规划自定义。 描述 填写实例的描述信息。 可维护时间窗 指允许云服务技术支持对实例进行维护的时间段。如有维护需要,技术支持会提前与您沟通确认。 建议选择业务量较少的时间段。 安全组 安全组用于设置端口访问规则,定义哪些端口允许被外部访问,以及允许访问外部哪些地址与端口。 例如,后端服务部署在外部网络,则需要设置相应的安全组规则,允许访问后端服务地址与API调用端口。 说明: 更换安全组时,新的安全组须满足专享版实例的前端API调用以及访问后端服务所需出入规则。 如果开启公网入口,安全组入方向需要放开80(HTTP)和443(HTTPS)端口的访问权限。 弹性IP地址 指允许外部服务通过弹性IP地址,调用专享版实例创建的API。开启“公网入口”,需要绑定一个“弹性IP地址”,弹性IP地址另行收费。 您需要使用独立域名/子域名访问,使用子域名访问时存在单日访问次数限制。 可在创建API分组后,为分组绑定独立域名,独立域名需要解析到专享版实例的弹性IP。 公网带宽 启用“弹性IP地址”后,在“入口地址”区域展示“公网带宽”。 公网带宽费用按小时计算,以弹性公网IP服务的价格为准。 出口地址 指允许专享版实例API的后端服务部署在外部网络,API网关为实例开启公网出口。公网出口可随时关闭或开启。 出公网带宽 出公网带宽费用按小时计算,以弹性公网IP服务的价格为准。 路由 如果本地数据中心的子网不在以下三个大子网段内,暂时不支持配置本地路由:10.0.0.0/8-24、172.16.0.0/12-24、192.168.0.0/16-24。
  • 配置参数修改 登录管理控制台。 在管理控制台左上角单击,选择区域。 单击管理控制台左上角,然后单击“API网关 APIG”。 在左侧导航单击“专享版”,进入专享版实例列表页,单击“查看控制台”,进入API开发与调用管理页面。 单击“配置参数”页签,找到您需要调整的配置项并进行修改。 修改实例配置参数会引起APIG业务中断,建议在无业务运行或业务低峰时修改配置参数。 表2 实例配置参数说明 参数名 参数说明 ratelimit_api_limits API全局默认流控值。API未绑定流控策略时,执行此默认流控;API绑定流控策略时,则执行绑定的流控策略。流控策略的API流量限制值不能超过API全局默认流控值。 request_body_size API请求中允许携带的Body大小上限,默认值为12MB。 backend_timeout 后端响应超时时间上限,默认值为60000ms,可修改范围为1ms~600000ms。 app_token app_token认证方式开关。启用后,可在API请求中使用获取的access_token进行API的调用认证。 app_token_expire_time:access_token的有效时间,在access_token到期前,请及时获取新的access_token并更新,避免影响正常使用。 refresh_token_expire_time:refresh_token的有效时间。refresh_token用于获取新的access_token。 app_token_uri:获取access_token的uri。 app_token_key:access_token的加密key。 app_basic app_basic认证方式开关,默认关闭。启用后,在API请求中添加Header参数“Authorization”,参数值为"Basic"+base64(appkey:appsecret),其中appkey和appsecret分别为应用的Key和Secret。 app_secret app_secret认证方式开关。启用后,可在API请求中添加“X-HW-ID”和“X-HW-AppKey”参数,携带应用的Key和Secret进行API的调用认证。 app_route 支持IP访问开关。启用后,非DEFAULT分组下的APP认证的API可以仅使用IP地址调用。 backend_client_certificate 后端双向认证开关。启用后,创建API配置后端服务时,可配置后端双向认证。 ssl_ciphers 支持配置https加密套件,默认所有的加密套件全部支持。当您绑定独立域名后,可根据需要选择支持的加密套件。 real_ip_from_xff 是否使用X-Forwarded-For头中的IP作为ACL、流控的判断依据。 xff_index:X-Forwarded-For头中IP的排序序号,值允许为正数、负数、0。 xff_index值为0或正数时,获取X-Forwarded-For头中对应索引的IP。 xff_index值为负数时,按倒序方式从X-Forwarded-For头中获取IP。 例如到达API网关的X-Forwarded-For头中依次有IP1,IP2,IP3三个IP地址,xff_index取0时获取IP1,xff_index取1时获取IP2,xff_index取-1时获取IP3,xff_index取-2时获取IP2。 vpc_name_modifiable 负载通道名称是否可修改。 须知: 负载通道名称可修改时,当前实例的负载通道无法通过项目级负载通道管理接口操作。 app_jwt_enable app_jwt认证方式开关。启用后,可在API请求中添加“Authorization”和“Timestamp”参数,携带应用的Key和Secret以及时间戳进行API的调用认证。 app_jwt_auth_header:app_jwt认证头,即API请求中携带app_jwt认证信息的Header参数,默认为Authorization。 public_key_enable public_key类型签名密钥开关。启用后,可在签名密钥认证中使用public_key类型签名。 public_key_uri_prefix:获取public_key对应secret的uri前缀。具体uri格式为:https://{虚拟私有云 访问地址}{public_key_uri_prefix}{public_key签名密钥名称}。
  • 计费说明 API网关提供包年/包月模式和按需模式,包年/包月模式计费项信息请参考表1,按需模式计费项信息请参考表2 表1 包年/包月模式计费项信息 计费项目 计费项说明 适用的计费模式 计费公式 版本 API网关提供的实例版本有:基础版、专业版、企业版、铂金版等,您可以根据实际业务需要按需使用。实例版本说明,请参考产品规格。如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 实例版本单价,请参考价格详情中的包年/包月计费价格。 包年/包月计费。 版本实例价格x购买个数+公网带宽单价x实际使用时长x实例个数 购买时长(月或年) 使用API网关实例的时间长度,支持使用1~9个月,或者1~3年。 购买个数(个) 使用API网关实例的个数。 公网带宽 API请求出公网带宽 按需计费。 表2 按需模式计费项信息 计费项目 计费项说明 适用的计费模式 计费公式 版本 API网关提供的实例版本有:基础版、专业版、企业版、铂金版等,您可以根据实际业务需要按需使用。实例版本说明,请参考产品规格。如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 实例版本单价,请参考价格详情中的按需计费价格。 按需计费。 实例版本单价x使用时长x实例个数+公网带宽单价x使用时长x实例个数 公网带宽 API请求出公网带宽。 购买时长(小时) 使用API网关实例的时间长度,按小时计费,精确到秒。 购买个数(个) 使用API网关实例的个数。
  • 计费示例 以按需使用为例,假设您已开通API网关实例专业版且未使用公网带宽,该版本按需计费的实例版本单价为12.88元/小时/实例。您于2023/03/08 15:50:04在API网关上购买了1个实例,在2023/03/10 17:50:00使用完成后删除实例。费用计算如下: 费用计算结果保留小数点后两位,第三位四舍五入。如遇四舍五入后不足¥0.01,则按¥0.01展示。因此,费用为643.99元。
  • 错误码(ICSError) 本节介绍Web SDK客户端错误码IcsError的详细信息。 表1 错误码说明 报错信息 错误码 错误描述 错误原因或建议处理方式 NO_ENOUGH_RESOURCE 20010035 There are not enough resources. 没有充足的资源。 NATS_PUBLISH_FAILURE 20010040 Failed to publish message to nats. NATS发送消息失败,请联系技术支持。 NATS_SUBSCRIBE_FAILURE 20010041 Failed to subscribe single message. NATS订阅消息失败,请联系技术支持。 NATS_DELETE_SUBJECT_FAILURE 20010042 No such subject, delete subject failed. NATS消息删除失败,请联系技术支持。 NATS_INTERNAL_ERROR 20010043 Nats internal error. NATS内部错误,请联系技术支持。 DIGITAL_HUMAN_NOT_AVAILABLE 20010044 digital human asset not available. 数字人资产不可用。 ROOM_NOT_FOUNT 20010045 roomInfo not found. 房间信息未找到,请联系技术支持。 ROOM_ID_JOB_EXIST 20010046 roomId job exist. 房间任务ID未找到,请联系技术支持。 ASSET_NOT_EXIST 20010047 asset not exist. 资产未找到,请联系技术支持。 ASSET_INFO_INVALID 20010050 the asset info is invalid, please check the digital human config info. 资产信息无效,请检查数字人的ID配置。 INVALID_COMMAND 20010053 Invalid command, please check your command. 非法command命令,请检查你的command参数。 QUOTA_INSUFFICIENT 20010056 2d digital human video ncj insufficient resource quota. 运行中的任务数已达上限,请稍后重试。 REQUEST_TMS_UNAVAILABLE 20010060 tms request unavailable. 请求TMS失败,请联系技术支持。 AUDIO_NOT_FOUND_URL 20010067 audio file not found, please check field audio_config. 音频文件未找到,请检查audio_config,并联系技术支持。 MPS_FIELD_VERIFY_FAIL 20010070 field verify fail. 字段校验报错,请联系技术支持。 ASSET_UNAVAILABLE 20010071 the asset is unavailable. 资产不可用。 INVAILD_CHAT_JOB 20010074 The job info is not existed or the job is over. 智能交互任务不存在或已过期。 CHAT_QUOTA_INSUFFICIENT 20010075 insufficient resource chat concurrent quota. 智能交互的并发数配额不足。 CHAT_JOB_EXPIRE 20010076 chat task has been expired. 智能交互任务过期,请稍后重试。 DIALOG_CONCURRENT_EXCEED_MAX_VALUE MSS.47010040 The number of concurrent intelligent interactions exceeds the maximum. 智能交互并发数超过最大值。 ONCE_CODE_AUTH_FAILED MSS.47010046 Once authentication code authentication failed. 一次性鉴权码鉴权失败。 ONCE_CODE_AUTH_LOCKED MSS.47010047 The number of once authentication failures exceeds the maximum. Locked. 一次性鉴权码的鉴权失败次数超过最大值,已锁定。 WS_INTERNAL_ERROR MSS.47010100 Internal error. 内部异常,请联系技术支持。 WS_MESSAGE_PARSE_ERROR MSS.47010101 Failed to parse the message. 消息解析失败,请联系技术支持。 WS_ROBOT_ID_IS_EMPTY MSS.47010102 Failed to start the dialog. The robot ID is empty. 启动对话失败,robot ID为空,请联系技术支持。 WS_UNKNOWN_ACTION MSS.47010103 Dialog request failed. The action is not supported. 对话请求失败,不支持该操作,请联系技术支持。 CONNECT_AIUI_TIMEOUT MSS.47010104 Connection to the third-party app timed out. 对话连接第三方APP超时。 AIUI_PARAM_FAILED MSS.47010107 Error information returned by the third-party app. 第三方APP返回错误信息。 NOT_IN_WAITCONNECT MSS.47010109 Failed to start the dialog. The dialog is not in the waitConnect state. 对话不处于waitConnect状态,无法启动对话。 请联系技术支持。 WEBCLIENT_START_CHAT_WORKER_BROKEN MSS.47010111 Failed to start the dialog and disconnected from the worker. 启动对话失败,已与worker断链。请联系技术支持。 RTC_ERR_CODE_RTC_SDK_ERROR 90000001 sdk internal error. 内部错误,请联系技术支持。 RTC_ERR_CODE_NOT_SUPPORT_MEDIA_DEVICES 90100002 not support enumerate devices. 浏览器不支持enumerateDevices方法,请升级或更换浏览器。 RTC_ERR_CODE_NO_AVAILABLE_DEVICES 90100003 no available devices. 没有找到可用设备,请排查设备是否就绪。 RTC_ERR_CODE_NO_AVAILABLE_AUDIO_INPUT_DEVICES 90100005 no available audio input devices. 没有找到音频输入设备,请排查音频采集设备是否就绪。 RTC_ERR_CODE_NO_AVAILABLE_AUDIO_OUTPUT_DEVICES 90100006 no available audio output devices. 没有找到音频输出设备。 RTC_ERR_CODE_STATUS_ERROR 90100007 room status error. 房间状态不正确,请检查是否入会成功。 RTC_ERR_CODE_WEBSOCKET_NOT_CONNECTED 90100008 websocket connection state is not "CONNECTED". websocket未连接,请检查websocket连接情况。 RTC_ERR_CODE_WAIT_CONFIG_FAIL 90100009 wait server config fail. 获取下发配置失败,请联系技术支持。 RTC_ERR_CODE_PUBLISH_RESPONSE_FAIL 90100010 publish response fail. 发布响应失败,请联系技术支持。 RTC_ERR_CODE_REGION_NOT_COVERED 90100011 current region is not covered, service unavailable. 没有找到服务端地址,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_CONNECT_TIMEOUT 90100012 websocket connect timeout. websocket建立连接超时,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_RECONNECT_TIMEOUT 90100013 websocket reconnect timeout. websocket重新建立连接超时,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_NOT_OPEN 90100014 websocket is not open. websocket连接未打开,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_INTERRUPTED 90100015 websocket connection state is idle, interrupt operation. websocket连接被强制关闭,一般为离会或重连。 RTC_ERR_CODE_WEBSOCKET_CONNECT_ERROR 90100016 websocket connect error. websocket连接出错,服务端主动断连。 RTC_ERR_CODE_CAPTURE_PERMISSION_DENIED 90100017 capture failed, permission denied. 未授权音频设备采集权限,采集失败。建议用户授权麦克风访问权限。 RTC_ERR_CODE_CAPTURE_OVER_CONSTRAINED 90100018 capture failed, Constraint parameter invalid. 音频采集设备不支持设置的采集约束,采集失败。 RTC_ERR_CODE_CAPTURE_DEVICE_NOT_FOUND 90100019 capture failed, requested device not found. 未找到请求的设备,采集失败。建议通话开始前,引导用户检查通话所需的麦克风等设备是否就绪。 RTC_ERR_CODE_CAPTURE_DEVICE_NOT_READABLE 90100020 capture failed, maybe device is occupied by other application. 设备可能被其他应用程序占用,采集失败。请检查设备的使用状态。建议提示用户“暂时无法访问麦克风,请确保当前没有其他应用请求访问麦克风后,重试”。 RTC_ERR_CODE_PLAY_NOT_ALLOW 90100021 the user didn't interact with the document first, please trigger by gesture. 不允许播放。 RTC_ERR_CODE_ROLE_NO_PERMISSION 90100022 the user role have no permission to operate. 用户角色没有权限,请检查用户角色。 RTC_ERR_CODE_ANSWER_SDP_INVALID 90100023 the answer sdp is invalid. SDP协商错误,请联系技术支持。 RTC_ERR_CODE_MEDIA_UPSTREAM_UNSUPPORTED 90100024 the upstream media is not supported. 浏览器不支持媒体采集。 RTC_ERR_CODE_MEDIA_NETWORK_ERROR 90100026 media connection establish failed, please switch network or try again later. 媒体建连失败,请切换网络后重试。 RTC_ERR_CODE_ROOM_STREAM_STATUS_PAUSED 90100029 room stream status paused. 房间音频已暂停。 RTC_ERR_CODE_SIGNATURE_EXPIRED 90100030 signature expired. 签名已过期。 RTC_ERR_CODE_SIGNATURE_INVALID 90100031 signature invalid. 非法签名。 RTC_ERR_CODE_RTC_ACS 90100100 server internal exception. 服务端内部错误,请联系技术支持。 RTC_ERR_CODE_RTC_CONTROL_ERROR 90100200 server internal exception. 服务端内部错误,请联系技术支持。 RTC_ERR_CODE_SFU_ERROR 90100300 server internal exception. 服务端内部错误,请联系技术支持。 MPS_JOB_STATE_NULL 999000001 - 网络异常,请检查网络连接后刷新重试。 MPS_JOB_STATE_ERROR 999000002 - 任务状态异常,请刷新后重试。 PROMISE_ERROR 999100001 - 内部错误,请刷新后重试。 CATCH_ERROR 999100002 - 内部错误,请刷新后重试。 KICK_OUT 999100003 - 该用户已经在其他地方加入房间,如需恢复请刷新重试。 AUDIO_DEVICE_ERROR 999100004 - 音频设备异常,请检查设备是否存在或已授权使用。 PEER_LEAVE 999100005 - 内部错误,请刷新后重试。 CONNECT_ERROR 999200001 - 内部错误,请刷新后重试。 UI_NO_PARENT 999300001 - 参数错误,请检查参数。 UI_PARAM_ERROR 999300002 - SDK挂载节点不存在,请检查参数。 父主题: 接口参考
  • 环境要求 Web SDK运行环境要求,如表1所示。 表1 环境要求 环境项 使用限制 开发工具 Microsoft Visual Studio Code、WebStorm或其他Web IDE开发工具。 语言 Javascript或Typescript。 编译环境 建议Node 17+。 浏览器 浏览器使用限制,请参见表2。 由于浏览器的安全策略限制,仅支持通过“https://域名”方式访问,否则无法获取麦克风权限。 表2 浏览器适配详情 操作系统类型 浏览器类型 浏览器版本 Windows Chrome浏览器 91+ Edge浏览器 80+ Android 微信内嵌浏览器(TBS内核) - 微信内嵌浏览器(XWEB内核) - 企业微信内嵌浏览器 - 移动版Chrome浏览器 91+ iOS 微信内嵌浏览器 iOS 14.3+ 微信6.5+版本 移动版Safari浏览器 -
  • 谷歌浏览器 打开Chrome浏览器,单击浏览器右上方的图标,从下拉框中选择“设置”。 进入“设置”页面。 在左侧导航栏中,选择“隐私设置和安全性”。 在右侧界面中,单击“网络设置”,进入“网络设置”页面。 在“权限”区域,单击“麦克风”,进入麦克风授权页面。 选择“网站可以请求使用您的麦克风”。如果默认已勾选此项,则已满足。 单击左上方的返回图标,返回到“网络设置”页面。 在“权限”区域,单击“摄像头”,进入摄像头授权页面。 选择“网站可以请求使用您的摄像头”。如果默认已勾选此项,则已满足。 上述设置完成后,当浏览器需要使用麦克风、摄像头时,会在页面弹出询问框,询问是否可以使用您的麦克风或摄像头,单击“允许”即可。
  • setLogLevel (static) setLogLevel(logLevel: 'debug' | 'info' | 'warn' | 'error' | 'none'): void 【功能说明】 设置输出日志的级别。 【请求参数】 表6 logLevel 参数 是否必须 默认值 类型 描述 logLevel 是 info debug info warn error none 日志级别。 【返回参数】 无
  • setConfig (static) setConfig(config: ConfigMap): void 【功能说明】 设置配置项,用于控制是否显示字幕或交互按钮。 【请求参数】 表4 config 参数 是否必须 默认值 类型 描述 config 是 - ConfigMap 配置信息,请参见表5。 表5 ConfigMap 参数 是否必须 默认值 类型 描述 enableCaption 否 false boolean 是否显示字幕。 enableChatBtn 否 false boolean 是否显示交互按钮。 【返回参数】 无 【代码示例】 HwICSUiSdk.setConfig({ enableCaption: true, enableChatBtn: false, });
共100000条