华为云用户手册

  • 操作场景 云审计服务管理控制台支持对已创建的管理类追踪器增加OBS转储、LTS转储等相关配置。 用户可以选择是否将已记录的事件发送到OBS桶永久保存。如果用户想要对管理类事件进行统一管理,还可以设置将多个账号记录的事件统一转储到一个OBS桶。 OBS桶有标准存储、低频访问存储和归档存储三种类型。由于云审计服务需要高频次的访问转储的OBS桶,因此必须使用标准存储类型的OBS桶。 配置追踪器完成后,系统立即以新的规则开始记录操作。 本节介绍如何配置管理类事件追踪器。
  • 操作场景 云审计服务管理控制台支持配置已开启的追踪器的OBS桶、LTS转储和配置已创建的追踪器关键事件操作通知。 用户可选择已存在的OBS桶。云审计服务会自动为该OBS桶挂载转储所需的桶策略。 当配置云审计服务的追踪器中的“事件文件前缀”时,不影响对应OBS桶的策略。 如果用户想要对数据类事件进行统一管理,可以设置将多个追踪对象的事件转储到同一个OBS桶。 OBS桶有标准存储、低频访问存储和归档存储三种类型。由于云审计服务需要高频次的访问转储的OBS桶,因此必须使用标准存储类型的OBS桶。 配置追踪器完成后,系统立即以新的规则开始记录操作。 本节介绍如何配置数据类事件追踪器。
  • 使用说明 由于云审计服务的关键操作通知需要使用消息通知服务向相关的订阅者发送通知,因此需要提前了解消息通知服务的创建主题、添加订阅等操作。 云审计服务支持创建100个关键操作通知: 自定义类型的关键操作通知支持单独设置触发操作范围、指定操作用户和通知主题。 完整类型的关键操作通知,支持通知主题。 如果云审计服务和云监控服务使用同一消息主题,则接受终端一样,但是发送的内容不同。 单个关键操作通知支持最多对10个用户组的50个用户发起的操作进行通知配置。单个关键操作通知不支持一次选择多个用户组,但是可以分次添加不同用户组中的用户在同一个关键操作通知。
  • 关联服务 对象存储服务(Object Storage Service,简称OBS):存储事件文件。 由于云审计服务需要高频次的访问转储的OBS桶,因此必须选择使用标准存储类型的OBS桶。 数据加密服务(Data Encryption Workshop,简称DEW):为事件文件加密功能提供密钥。 云日志服务(Log Tank Service,简称LTS):提供日志存储功能。 消息通知服务(Simple Message Notification,简称SMN):检测到关键操作时,调用消息通知服务向用户发送邮件、短信通知。
  • 操作场景 用户首次进入云审计服务时,在追踪器页面单击“开通云审计服务”,系统会自动为您创建一个名为system的管理追踪器,之后您也可以在追踪器页面创建多个数据追踪器。管理追踪器会自动识别并关联当前租户所使用的所有云服务,并将当前租户的所有操作记录在该追踪器中。数据追踪器会记录租户对OBS桶中的数据操作的详细信息。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 数据库对象 表1 schema对象 序号 Oracle数据库 GaussDB数据库 差异 1 分析视图 不支持 - 2 属性维度 不支持 - 3 集群 支持 - 4 约束 支持 - 5 数据库链接 支持 - 6 数据库触发器 支持 - 7 尺寸 支持 - 8 外部过程库 不支持 - 9 分层结构 不支持 - 10 索引组织表 不支持 - 11 索引 支持 - 12 索引类型 不支持 - 13 java类 不支持 - 14 java资源 不支持 - 15 java源码 不支持 - 16 join groups 不支持 - 17 物化视图 支持 - 18 物化视图日志 不支持 - 19 挖掘模型 不支持 - 20 对象表 不支持 - 21 对象类型 不支持 - 22 对象视图 不支持 - 23 operators 支持 - 24 包 支持 - 25 序列 支持 - 26 存储函数 支持 - 27 存储过程 支持 - 28 同义词 支持,有差异 Oracle数据库的数据库对象在同一namespace内不能重名。GaussDB同一namespace内同义词可与表、视图、函数、package重名,如果重名,会优先访问本名对象,未寻找到本名对象时才会寻找同义词指向的对象;Schema名是用户名时才会搜索PUBLIC同义词。 29 表 支持 - 30 视图 支持 - 31 zone map 不支持 - 表2 nonschema对象 序号 Oracle数据库 GaussDB数据库 1 上下文 不支持 2 目录 支持 3 版本 不支持 4 闪回存档 不支持 5 锁定配置文件 不支持 6 配置文件 不支持 7 还原点 支持 8 角色 支持 9 回滚段 ustore支持回滚段 astore不支持回滚段 10 表空间 支持 11 表空间集 不支持 12 统一审计策略 支持 13 用户 支持 父主题: SQL的基本元素
  • 数据库对象 表1 schema对象 序号 Oracle数据库 GaussDB数据库 差异 1 分析视图 不支持 - 2 属性维度 不支持 - 3 集群 支持 - 4 约束 支持 - 5 数据库链接 支持 - 6 数据库触发器 支持 - 7 尺寸 支持 - 8 外部过程库 不支持 - 9 分层结构 不支持 - 10 索引组织表 不支持 - 11 索引 支持 - 12 索引类型 不支持 - 13 java类 不支持 - 14 java资源 不支持 - 15 java源码 不支持 - 16 join groups 不支持 - 17 物化视图 支持 - 18 物化视图日志 不支持 - 19 挖掘模型 不支持 - 20 对象表 不支持 - 21 对象类型 不支持 - 22 对象视图 不支持 - 23 operators 支持 - 24 包 支持 - 25 序列 支持 - 26 存储函数 支持 - 27 存储过程 支持 - 28 同义词 支持,有差异 Oracle数据库的数据库对象在同一namespace内不能重名;GaussDB内同一namespace内同义词可与表、视图、函数、package重名,重名时,优先访问本名对象,未寻找到本名对象时才会寻找同义词指向的对象;Schema名是用户名时才会搜索PUBLIC同义词。 29 表 支持 - 30 视图 支持 - 31 zone map 不支持 - 表2 nonschema对象 序号 Oracle数据库 GaussDB数据库 1 上下文 不支持 2 目录 支持 3 版本 不支持 4 闪回存档 不支持 5 锁定配置文件 不支持 6 配置文件 不支持 7 还原点 支持 8 角色 支持 9 回滚段 ustore支持回滚段 astore不支持回滚段 10 表空间 支持 11 表空间集 不支持 12 统一审计策略 支持 13 用户 支持 父主题: SQL的基本元素
  • 关键字 约束差异: 当关键字在M-Compatibility模式下为保留关键字,在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为表名、列名、列别名、AS列别名、AS表别名、表别名、函数名和变量名,在MySQL中支持。 当关键字在M-Compatibility模式下为非保留关键字,在MySQL中为保留关键字,其差异为:在M-Compatibility模式下可作为表名、列名、列别名、AS列别名、AS表别名、表别名、函数名和变量名,在MySQL中不支持。 当关键字在M-Compatibility模式下为保留关键字(可以是函数或类型),在MySQL中为保留关键字,其差异为:在M-Compatibility模式下可作为列别名、AS列别名、函数名和变量名,在MySQL中不支持。 当关键字在M-Compatibility模式下为保留关键字(可以是函数或类型),在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为表名、列名、AS表别名和表别名,在MySQL中支持。 当关键字在M-Compatibility模式下为非保留关键字(不能是函数或类型),在MySQL中为保留关键字,其差异为:在M-Compatibility模式下可作为表名、列名、列别名、AS列别名、AS表别名、表别名和变量名,在MySQL中不支持。 当关键字在M-Compatibility模式下为非保留关键字(不能是函数或类型),在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为函数名,在MySQL中支持。 在M-Compatibility模式下的非保留关键字、保留关键字(可以是函数或类型)以及非保留关键字(不能是函数或类型)之中,以下关键字不能作为列别名进行使用: BETWEEN、BIGINT、BLOB、CHAR、CHARACTER、CROSS、DEC、DECIMAL、DIV、DOUBLE、EXISTS、FLOAT、FLOAT4、FLOAT8、GROUPING、INNER、INOUT、INT、INT1、INT2、INT3、INT4、INT8、INTEGER、JOIN、LEFT、LIKE、LONGBLOB、LONGTEXT、MEDIUMBLOB、MEDIUMINT、MEDIUMTEXT、MOD、NATURAL、NUMERIC、OUT、OUTER、PRECISION、REAL、RIGHT、ROW、ROW_NUMBER、SIGNED、SMALLINT、SOUNDS、TINYBLOB、TINYINT、TINYTEXT、VALUES、VARCHAR、VARYING、WITHOUT 其中,SIGNED和WITHOUT在MySQL中可以作为列别名进行使用。 父主题: SQL
  • SQL查询和子查询 GaussDB数据库兼容除分层查询以外的SQL查询和子查询。 表1 SQL查询和子查询 序号 Oracle数据库 GaussDB数据库 差异 1 创建简单查询 支持。 - 2 分层查询 不支持。 - 3 UNION [ALL],INTERSECT,减运算符 支持。 - 4 查询结果排序 支持,有差异。 GaussDB查询不包含分组,且目标列同时包含聚集函数和集合返回函数时,不忽略对集合返回函数列的排序。 5 Joins 支持,有差异。 GaussDB只支持和Oracle相同的Join Types,如left、right、self 、natural、full outer join等。不支持In-Memory Join Groups等Join Optimizations方法。 6 使用子查询 支持。 - 7 嵌套子查询的解嵌套 支持,有差异。 GaussDB不支持显式指定HASH_AJ或MERGE_AJ。 8 分布式查询 支持,有差异。 GaussDB需要显式DBLINK查询。 9 聚集函数嵌套 支持。 - 父主题: 分布式
  • 排序规则 GaussDB数据库支持指定模式、表或列的排序规则,支持的范围如下。 排序规则差异说明: 当前仅有字符串类型、部分二进制类型支持指定排序规则,其他类型不支持指定排序规则,可以通过查询pg_type系统表中类型的typcollation属性不为0来判断该类型支持字符序。MySQL中所有类型可以指定字符序,但除字符串、二进制类型其他排序规则无实际意义。 当前排序规则(除binary外)仅支持在其对应字符集与库级字符集一致时可以指定,GaussDB数据库中,字符集必须与数据库的字符集一致,且不支持表内多种字符集混合使用。 utf8mb4字符集下默认字符序为utf8mb4_general_ci,与MySQL5.7保持一致。 表1 排序规则列表 序号 MySQL数据库 GaussDB数据库 1 utf8mb4_general_ci 支持 2 utf8mb4_unicode_ci 支持 3 utf8mb4_bin 支持 4 gbk_chinese_ci 支持 5 gbk_bin 支持 6 gb18030_chinese_ci 支持 7 gb18030_bin 支持 8 binary 支持 9 utf8mb4_0900_ai_ci 支持 10 utf8_general_ci 支持 11 utf8_bin 支持 12 utf8_unicode_ci 支持 父主题: MySQL数据库兼容性M-Compatibility模式
  • 获取结果集中的数据 ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用的方法如表1所示,其他方法请参考JDK官方文档。 表1 ResultSet对象的常用方法 方法 描述 差异 int getInt(int columnIndex) 按列标获取int型数据。 - int getInt(String columnLabel) 按列名获取int型数据。 - String getString(int columnIndex) 按列标获取String型数据。 字段类型为整型且带有ZEROFILL属性时,GaussDB按照ZEROFILL属性要求的宽度信息用0进行补位后输出结果,MySQL直接输出结果。 String getString(String columnLabel) 按列名获取String型数据。 字段类型为整型且带有ZEROFILL属性时,GaussDB按照ZEROFILL属性要求的宽度信息用0进行补位后输出结果,MySQL直接输出结果。 Date getDate(int columnIndex) 按列标获取Date型数据 - Date getDate(String columnLabel) 按列名获取Date型数据。 -
  • 字符串数据类型 表1 字符串数据类型 序号 MySQL数据库 GaussDB数据库 差异 1 CHAR(M) 支持,存在差异 输入格式: 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 GaussDB不支持转义字符输入,MySQL支持。 2 VARCHAR(M) 支持,存在差异 输入格式: GaussDB的自定义函数参数和返回值不支持长度校验,存储过程参数不支持长度校验,MySQL支持。 GaussDB的自定义函数和存储过程中的临时变量支持长度校验以及严格宽松模式下的报错和截断告警,MySQL不支持。 GaussDB不支持转义字符输入,MySQL支持。 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 3 TINYTEXT 支持,存在差异 输入格式: GaussDB不支持转义字符输入,MySQL支持。 默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中TINYTEXT类型不支持主键,GaussDB支持。 索引:MySQL中TINYTEXT类型不支持除前缀索引外其他索引方法,GaussDB支持。 4 TEXT 支持,存在差异 输入格式: GaussDB不支持转义字符输入,MySQL支持。 默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中TEXT类型不支持主键,GaussDB支持。 索引:MySQL中TEXT类型不支持除前缀索引外其他索引方法,GaussDB支持。 5 MEDIUMTEXT 支持,存在差异 输入格式: GaussDB不支持转义字符输入,MySQL支持。 默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中MEDIUMTEXT类型不支持主键,GaussDB支持。 索引:MySQL中MEDIUMTEXT类型不支持除前缀索引外其他索引方法,GaussDB支持。 6 LONGTEXT 支持,存在差异 输入格式: GaussDB只支持不超过1G字节长度,MySQL支持4G-1字节长度。 GaussDB不支持转义字符输入,MySQL支持。 默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中LONGTEXT类型不支持主键,GaussDB支持。 索引:MySQL中LONGTEXT类型不支持除前缀索引外其他索引方法,GaussDB支持。 父主题: 数据类型
  • 流量控制函数 表1 流量控制函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 IF() 支持 expr1入参仅支持bool类型。非bool类型入参若不能转换为bool类型则报错。 若expr2、expr3两入参类型不同且两类型间不存在隐式转换函数则报错。 两入参类型相同时,返回该入参类型。 若expr2、expr3两入参类型分别为NUMERIC、STRING或TIME其中一个时,输出为TEXT类型,MySQL输出为VARCHAR类型。 2 IFNULL() 支持 若expr1、expr2两入参类型不同且两类型间不存在隐式转换函数则报错。 两入参类型相同时,返回该入参类型。 若expr1、expr2两入参类型范畴分别为NUMEIRC、STRING或TIME其中一个时,输出为TEXT类型,MySQL输出为VARCHAR类型。 两入参类型其中一个为FLOAT4类型另一个为numeric范畴中任一类型,返回值为DOUBLE类型。MySQL其中一入参为FLOAT4,另一入参为TINYINT、UNSIGNED TINYINT、SMALLINT、UNSIGNED SMALLINT、MEDIUMINT、UNSIGNED MEDIUMINT、BOOL任一类型时,返回FLOAT4类型,第一个入参为FLOAT4,第二个入参为BIGINT或UNSIGNED BIGINT时,返回FLOAT类型。 3 NULLIF() 支持 GaussDB中NULLIF()类型推导遵从以下逻辑: 如果两个参数的数据类型不同,且两入参类型存在等值比较操作符,则返回对应等值操作符对应的左值类型,否则会对两入参类型进行强制类型兼容。 若强制类型兼容后,存在等值比较操作符,则返回强制类型兼容后对应等值操作符的左值类型。 若强制类型兼容后,仍找不到对应等值操作符,则报错。 --两入参类型存在等值比较操作符 gaussdb=# select pg_typeof(nullif(1::int2, 2::int8)); pg_typeof ----------- smallint (1 row) --两入参类型不存在等值比较操作符,但在强制类型兼容后可以找到等值比较操作符 gaussdb=# select pg_typeof(nullif(1::int1, 2::int2)); pg_typeof ----------- bigint (1 row) --两入参类型不存在等值比较操作符,且强制类型兼容后也不存在等值比较操作符 gaussdb=# SELECT nullif(1::bit, '1'::MONEY); ERROR: operator does not exist: bit = money LINE 1: SELECT nullif(1::bit, '1'::MONEY); ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. CONTEXT: referenced column: nullif MySQL输出类型仅与第一个入参类型有关: 第一个入参为tinyint、smallint、mediumint、int、bool时,输出为int类型。 第一个入参为bigint时,输出为bigint类型。 第一个入参为unsigned tinyint、unsigned smallint、unsigned mediumint、unsigned int、bit时,输出为unsigned int类型。 第一个入参为unsigned bigint时,输出为unsigned bigint。 第一个入参为浮点型即float、double、real时,输出为double类型。 第一个入参类型为decimal或numeric类型时,输出为decimal类型。 第一个入参类型为时间类型或字符串类型即date、time、date、datetime、timestamp、char、varchar以及tinytext、enum、set时,输出为varchar类型。 第一个入参类型为text、mediumtext、longtext时,输出为longtext类型。 第一个入参类型为tinyblob时,输出为varbinary类型。 第一个入参类型为mediumblob或longblob时,输出为longblob类型。 第一个入参为blob时,输出为blob类型。 4 ISNULL() 支持 GaussDB中返回值为BOOLEAN类型的t或f,MySQL中返回值为INT类型的1或0。 父主题: 系统函数
  • 聚合函数 表1 聚合函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 GROUP_CONCAT() 支持 当group_concat参数中同时有DISTINCT和ORDER BY语法时,所有ORDER BY后的表达式必须也在DISTINCT的表达式之中。 group_concat(... order by 数字)不代表按照第几个参数的顺序,数字只是一个常量表达式,相当于不排序。 无论参数的数据类型如何,group_concat返回值的数据类型始终为text;MySQL的group_concat在含有二进制类型参数时,返回值为二进制类型,其他情况返回值为字符串类型,并且返回值长度大于512时,其数据类型为字符串大对象或二进制大对象。 GUC参数group_concat_max_len有效范围是0-1073741823,最大值比MySQL小。 2 DEFAULT() 支持 字段默认值为数组形式,GaussDB返回数组形式,MySQL不支持数组类型。 GaussDB字段是隐藏列(比如xmin、cmin),函数返回空值。 GaussDB支持分区表、临时表、多表连接查询默认值。 GaussDB支持查询列名包含字符串值节点(表示名称)和A_Star节点(表示出现“*”),如default(tt.t4.id)和default(tt.t4.*)。不合法的查询列名和A_Star节点,GaussDB和MySQL报错信息有差异。 GaussDB创建字段默认值,没有检验字段类型的范围,使用default函数可能报错。 字段的默认值是函数表达式时,GaussDB的default函数返回建表时字段的default表达式的计算值。MySQL的default函数返回NULL。 父主题: 系统函数
  • 静态SQL 表1 静态查询 SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 SELECT 支持,有差异。 GaussDB和Oracle在某些场景下有不同。 GaussDB中FOR SHARE对检索出来的行加共享锁,不同事务的共享锁不会互相阻塞。若数据在一个事务中被FOR SHARE锁定,在另一个事务中使用SELECT FOR SHARE SKIP LOCKED时,SKIP LOCKED不会跳过锁。 表2 静态DML SQL语句 序号 Oracle数据库 GaussDB数据库 1 INSERT 支持 2 UPDATE 支持 3 DELETE 支持 4 MERGE 支持 5 LOCK TABLE 支持 表3 静态TCL SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 COMMIT 支持。 - 2 ROLLBACK 支持。 - 3 SAVEPOINT 支持。 - 4 SET TRANSACTION 支持,有差异。 GaussDB不支持NAME string语法、USE ROLLBACK SEGMENT rollback_segment语法。 表4 伪列 序号 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场景下与其他数据库行为不一致,直接进行业务迁移存在风险。 表5 隐式游标属性 序号 Oracle数据库 GaussDB数据库 差异 1 SQL%FOUND 支持,有差异。 GaussDB在commit\rollback之后不刷新隐式游标结果,Oracle会在commit\rollback之后刷新隐式游标结果。 2 SQL%NOTFOUND 支持,有差异。 3 SQL%ROWCOUNT 支持,有差异。 4 SQL%ISOPEN 支持,有差异。 5 SQL%BULK_ROWCOUNT 不支持。 6 SQL%BULK_EXCEPTIONS 不支持。 表6 显式游标语法及关键字 序号 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 支持 表7 显式游标属性 序号 Oracle数据库 GaussDB数据库 1 SQL%FOUND 支持 2 SQL%NOTFOUND 支持 3 SQL%ROWCOUNT 支持 4 SQL%ISOPEN 支持 表8 游标循环 序号 Oracle数据库 GaussDB数据库 1 FOR LOOP 支持 表9 自治事务支持场景 序号 Oracle数据库 GaussDB数据库 1 存储过程 支持 2 匿名块 支持 3 函数 支持 4 Package 支持 父主题: PL/SQL语言
  • 加密函数 表1 加密函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 AES_DECRYPT() 支持 ecb为不安全加密模式,GaussDB不支持,默认为cbc模式。 GaussDB中,当指定数据库使用的字符编码是SQL_ASCII时,服务器把字节值0-127根据ASCII标准解释,而字节值128-255则当作无法解析的字符;如果该函数的输入输出包含了任何非ASCII数据,数据库将无法帮助你转换或者校验非ASCII字符。 MySQL的返回值类型为BINARY、VARBINARY、BLOB、MEDIUMBLOB、LONGBLOB,GaussDB返回值类型固定为LONGBLOB。 2 AES_ENCRYPT() 支持 3 SHA()/SHA1() 支持 - 4 SHA2() 支持 - 父主题: 系统函数
  • 聚合函数 表1 聚合函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 GROUP_CONCAT() 支持 当group_concat参数中同时有DISTINCT和ORDER BY语法时,所有ORDER BY后的表达式必须也在DISTINCT的表达式之中。 group_concat(... order by 数字)不代表按照第几个参数的顺序,数字只是一个常量表达式,相当于不排序。 无论参数的数据类型如何,group_concat返回值的数据类型始终为text;MySQL的group_concat在含有二进制类型参数时,返回值为二进制类型,其他情况返回值为字符串类型,并且返回值长度大于512时,其数据类型为字符串大对象或二进制大对象。 GUC参数group_concat_max_len有效范围是0-1073741823,最大值比MySQL小。 2 DEFAULT() 支持 字段默认值为数组形式,GaussDB返回数组形式,MySQL不支持数组类型。 GaussDB字段是隐藏列(比如xmin、cmin),default函数返回空值。 GaussDB支持分区表、临时表、多表连接查询默认值。 GaussDB支持查询列名包含字符串值节点(表示名称)和A_Star节点(表示出现“*”),如default(tt.t4.id)和default(tt.t4.*)。不合法的查询列名和A_Star节点,GaussDB和MySQL报错信息有差异。 GaussDB创建字段默认值,没有检验字段类型的范围,使用default函数可能报错。 字段的默认值是函数表达式时,GaussDB的default函数返回建表时字段的default表达式的计算值。MySQL的default函数返回NULL。 父主题: 系统函数
  • MySQL数据库兼容性概述 本文档主要介绍GaussDB数据库的MySQL 5.7兼容模式(即sql_compatibility = 'MYSQL'、且设置参数b_format_version='5.7'、b_format_dev_version='s1'时)与MySQL5.7数据库的兼容性对比信息。仅介绍503.0.0版本后新增的兼容性特性,特性的相关规格和约束建议在开发者指南中查看。 GaussDB数据库在数据类型、SQL功能和数据库对象等基本功能上与MySQL数据库兼容。 由于GaussDB数据库与MySQL数据库底层框架实现存在差异,GaussDB数据库与MySQL数据库仍存在部分差异。 父主题: MySQL数据库兼容MySQL模式
  • 系统函数 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。只能使用M-Compatibility兼容模式下的系统函数,不能使用原GaussDB的系统函数,避免产生非预期的结果。当前存在原GaussDB的系统函数和MySQL系统函数同名,但是M-Compatibility兼容模式下尚未支持这些函数的情况;一部分未支持的同名函数会提示用户在M-Compatibility兼容模式下不支持,另外一部分同名函数仍然保持原GaussDB系统函数的行为。用户禁止使用这些同名函数,避免产生非预期的结果。具体同名函数列表如下: 表1 M-Compatibility兼容模式下提示不支持的同名函数 cot isEmpty json_append json_array json_array_append json_array_insert json_contains json_contains_path json_depth json_extract json_insert json_keys json_length json_merge json_merge_patch json_merge_preserve json_object json_quote json_remove json_valid json_replace json_search json_set json_type json_unquote last_insert_id md5 mod octet_length overlaps point radians stddev_pop stddev_samp var_pop var_samp variance lag lead - 表2 M-Compatibility兼容模式下保持原GaussDB系统函数行为的同名函数 ceil decode encode format instr position round stddev regexp_instr regexp_like regexp_replace regexp_substr row_num - - M-Compatibility兼容模式下,系统函数存在以下公共差异: 系统函数的返回值类型仅考虑入参node类型为Var(表中数据)和Const(常量输入)类型时的情况与MySQL保持一致,其他情况(如入参为运算表达式、函数表达式等)可能返回值的类型与MySQL有差异。 当聚合函数以其他函数、操作符或SELECT子句等表达式作为入参时(如SELECT sum(abs(n)) FROM t;),聚合函数将获取不到入参表达式传递的精度信息,导致函数的结果精度与MySQL有差异。 流程控制函数 日期和时间函数 字符串函数 强制转换函数 加密函数 比较函数 聚合函数 数字操作函数 其他函数 父主题: MySQL数据库兼容性M-Compatibility模式
  • 静态SQL 表1 静态查询 SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 SELECT 支持,有差异。 GaussDB和Oracle在某些场景下有不同。 GaussDB中不同事务中的共享锁在如下场景中不会互相阻塞: 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时,锁不会被跳过。 表2 静态DML SQL语句 序号 Oracle数据库 GaussDB数据库 1 INSERT 支持 2 UPDATE 支持 3 DELETE 支持 4 MERGE 支持 5 LOCK TABLE 支持 表3 静态TCL SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 COMMIT 支持。 - 2 ROLLBACK 支持。 - 3 SAVEPOINT 支持。 - 4 SET TRANSACTION 支持,有差异。 GaussDB不支持NAME string语法、USE ROLLBACK SEGMENT rollback_segment语法。 表4 伪列 序号 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场景下与其他数据库行为不一致,直接进行业务迁移存在风险。 表5 隐式游标属性 序号 Oracle数据库 GaussDB数据库 差异 1 SQL%FOUND 支持,有差异。 GaussDB在commit\rollback之后不刷新隐式游标结果,Oracle会在commit\rollback之后刷新隐式游标结果。 2 SQL%NOTFOUND 支持,有差异。 3 SQL%ROWCOUNT 支持,有差异。 4 SQL%ISOPEN 支持,有差异。 5 SQL%BULK_ROWCOUNT 不支持。 6 SQL%BULK_EXCEPTIONS 支持,有差异。 表6 显式游标语法及关键字 序号 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 支持 表7 显式游标属性 序号 Oracle数据库 GaussDB数据库 1 SQL%FOUND 支持 2 SQL%NOTFOUND 支持 3 SQL%ROWCOUNT 支持 4 SQL%ISOPEN 支持 表8 游标循环 序号 Oracle数据库 GaussDB数据库 1 FOR LOOP 支持 表9 自治事务支持场景 序号 Oracle数据库 GaussDB数据库 1 存储过程 支持 2 匿名块 支持 3 函数 支持 4 Package 支持 父主题: PL/SQL语言
  • 比较函数 表1 比较函数列表 序号 MySQ数据库 GaussDB数据库 差异 1 COALESCE() 支持,有差异。 union distinct场景下,返回值精度与MySQL不完全一致。 当第一个不为NULL的参数的后续参数表达式中存在隐式类型转换错误时,MySQL会忽略该错误,GaussDB会提示类型转换错误。 2 INTERVAL() 支持。 - 3 GREATEST() 支持,有差异。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 当该函数入参含有NULL且在WHERE关键字之后调用,返回结果与MySQL5.7不一致,此处为MySQL5.7存在的问题,MySQL8.0修复了该问题,目前GaussDB和MySQL8.0保持一致。 4 LEAST() 支持,有差异。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 当该函数入参含有NULL且在WHERE关键字之后调用,返回结果与MySQL5.7不一致,此处为MySQL5.7存在的问题,MySQL8.0修复了该问题,目前GaussDB和MySQL8.0保持一致。 5 ISNULL() 支持。 - 父主题: 系统函数
  • 流量控制函数 表1 流量控制函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 IF() 支持 expr1入参仅支持bool类型。非bool类型入参若不能转换为bool类型则报错。 若expr2、expr3两入参类型不同且两类型间不存在隐式转换函数则报错。 两入参类型相同时,返回该入参类型。 若expr2、expr3两入参类型分别为NUMERIC、STRING或TIME其中一个时,输出为text类型,MySQL输出为varchar类型。 2 IFNULL() 支持 若expr1、expr2两入参类型不同且两类型间不存在隐式转换函数则报错。 两入参类型相同时,返回该入参类型。 若expr1、expr2两入参类型范畴分别为NUMEIRC、STRING或TIME其中一个时,输出为text类型,MySQL输出为varchar类型。 两入参类型第一个入参为float4,另一个为bigint或unsigned bigint时返回double类型,MySQL返回float类型。 3 NULLIF() 支持 GaussDB中NULLIF()类型推导遵从以下逻辑: 如果两个参数的数据类型不同,且两入参类型存在等值比较操作符,则返回对应等值操作符对应的左值类型,否则会对两入参类型进行强制类型兼容。 若强制类型兼容后,存在等值比较操作符,则返回强制类型兼容后对应等值操作符的左值类型。 若强制类型兼容后,仍找不到对应等值操作符,则报错。 --两入参类型存在等值比较操作符 gaussdb=# select pg_typeof(nullif(1::int2, 2::int8)); pg_typeof ----------- smallint (1 row) --两入参类型不存在等值比较操作符,但在强制类型兼容后可以找到等值比较操作符 gaussdb=# select pg_typeof(nullif(1::int1, 2::int2)); pg_typeof ----------- bigint (1 row) --两入参类型不存在等值比较操作符,且强制类型兼容后也不存在等值比较操作符 gaussdb=# SELECT nullif(1::bit, '1'::MONEY); ERROR: operator does not exist: bit = money LINE 1: SELECT nullif(1::bit, '1'::MONEY); ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. CONTEXT: referenced column: nullif MySQL输出类型仅与第一个入参类型有关: 第一个入参为tinyint、smallint、mediumint、int、bool时,输出为int类型。 第一个入参为bigint时,输出为bigint类型。 第一个入参为unsigned tinyint、unsigned smallint、unsigned mediumint、unsigned int、bit时,输出为unsigned int类型。 第一个入参为unsigned bigint时,输出为unsigned bigint。 第一个入参为浮点型即float、double、real时,输出为double类型。 第一个入参类型为decimal或numeric类型时,输出为decimal类型。 第一个入参类型为时间类型或字符串类型即date、time、date、datetime、timestamp、char、varchar以及tinytext、enum、set时,输出为varchar类型。 第一个入参类型为text、mediumtext、longtext时,输出为longtext类型。 第一个入参类型为tinyblob时,输出为varbinary类型。 第一个入参类型为mediumblob或longblob时,输出为longblob类型。 第一个入参为blob时,输出为blob类型。 4 ISNULL() 支持 GaussDB中返回值为boolean类型的t或f,MySQL中返回值为int类型的1或0。 父主题: 系统函数
  • 字符串数据类型 表1 字符串数据类型 序号 MySQL数据库 GaussDB数据库 差异 1 CHAR[(M)] 支持 输入格式 GaussDB自定义函数参数和返回值不支持长度校验,存储过程参数不支持长度校验,同时也不支持在PAD_CHAR_TO_FULL_LENGTH打开时补齐正确的空格,MySQL支持。 GaussDB不支持转义字符输入,不支持""双引号输入,MySQL支持。 语法 GaussDB的 Cast(expr as char)语法无法根据输入的字符串长度转成对应的类型,只支持转成varchar类型。不支持cast(‘’ as char) 和cast(‘’ as char(0))将空串转成char(0)类型。MySQL支持按长度转成对应的类型。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 2 VARCHAR(M) 支持 输入格式 GaussDB的自定义函数参数和返回值不支持长度校验,存储过程参数不支持长度校验,MySQL支持。 GaussDB的自定义函数和存储过程中的临时变量支持长度校验以及严格宽松模式下的报错和截断告警,MySQL不支持。 GaussDB不支持转义字符输入,不支持""双引号输入,MySQL支持。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 3 TINYTEXT 支持 输入格式 GaussDB不支持长度限制255字节(最大不超过1G),不支持超限后,根据严格宽松模式报错和截断告警。MySQL支持。 GaussDB不支持转义字符输入,不支持""双引号输入,MySQL支持。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 4 TEXT 支持 输入格式 GaussDB不支持长度限制65535字节(最大不超过1G),不支持超限后,根据严格宽松模式报错和截断告警。MySQL支持。 GaussDB不支持转义字符输入,不支持""双引号输入,MySQL支持。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 5 MEDIUMTEXT 支持 输入格式 GaussDB不支持长度限制16777215字节(最大不超过1G),不支持超限后,根据严格宽松模式报错和截断告警。MySQL支持。 GaussDB不支持转义字符输入,不支持""双引号输入,MySQL支持。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 6 LONGTEXT 支持 输入格式 GaussDB只支持不超过1G,MySQL支持4G-1字节长度。 GaussDB不支持转义字符输入,不支持""双引号输入,MySQL支持。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 7 ENUM('value1','value2',...) 不支持 - 8 SET('value1','value2',...) 不支持 - 父主题: 数据类型
  • JSON函数 json函数差异说明: 对于json函数和其他字符入参函数来说,如果含有转义字符的输入,默认情况下会与MySQL有一定差异,需要设置GUC参数set standard_conforming_strings= off;的情况下,对于转义字符的场景才会与MySQL兼容,但是会产生非标准字符输入的warning告警,在转义字符中\t、\u与转义数字与MySQL有差异。JSON_UNQUOTE()函数该场景下已做兼容,不设置GUC参数时,仍与MySQL兼容,且不会报警。 在处理超长数字(数字的字符长度超过64)时,GaussDB的json函数会将数字解析为一个double处理,并使用科学计数法计数。和MySQL的非json类型入参相同。但是在json类型入参时,由于json类型未完全与MySQL兼容,此场景下会产生差异。MySQL会完整显示数字(并且当数字长度超过82时,MySQL会给出错误的结果。),GaussDB依然将超长数字解析为一个double精度的值。考虑到超长数字内部都是使用浮点数进行储存,进行运算时无论GaussDB还是MySQL都会有精度丢失,建议您使用字符串来储存超长数字。 gaussdb=# select json_insert('[1, 4, 99999999999999999999999999999999999999999999999999999999999999999999999999]','$[6]',json_insert('[1,4]','$[5]',99999999999999999999999999999999999999999999999999999999999999999999999999)); json_insert ------------------------------ [1, 4, 1e+74, [1, 4, 1e+74]] (1 row) 表1 JSON函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 JSON_APPEND() 支持 - 2 JSON_ARRAY() 支持 - 3 JSON_ARRAY_APPEND() 支持 - 4 JSON_ARRAY_INSERT() 支持 - 5 JSON_CONTAINS() 支持 - 6 JSON_CONTAINS_PATH() 支持 - 7 JSON_DEPTH() 支持 返回值与MySQL有差异,GaussDB返回的是int,MySQL返回的是bigint。 8 JSON_EXTRACT() 支持 - 9 JSON_INSERT() 支持 - 10 JSON_KEYS() 支持 - 11 JSON_LENGTH() 支持 返回值与MySQL有差异,GaussDB返回的是int,MySQL返回的是bigint。 12 JSON_MERGE() 支持 - 13 JSON_OBJECT() 支持 - 14 JSON_QUOTE() 支持 返回值与MySQL有差异,GaussDB返回的是json,MySQL返回的是varchar或者text。 15 JSON_REMOVE() 支持 - 16 JSON_REPLACE() 支持 - 17 JSON_SEARCH() 支持 返回值与MySQL有差异,GaussDB返回的是text,MySQL返回的是json。 18 JSON_SET() 支持 - 19 JSON_TYPE() 支持 数值类型的json值统一识别为number,与MySQL有差异。 20 JSON_UNQUOTE() 支持 - 21 JSON_VALID() 支持 - 父主题: 系统函数
  • 系统视图 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_DIRECTORIES DB_DIRECTORIES 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_OBJECTS DB_OBJECTS 15 ALL_PART_COL_STATISTICS DB_PART_COL_STATISTICS 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_PROGRAM_ARGS DB_SCHEDULER_PROGRAM_ARGS 20 ALL_SEQUENCES DB_SEQUENCES 21 ALL_SUBPART_KEY_COLUMNS DB_SUBPART_KEY_COLUMNS 22 ALL_SYNONYMS DB_SYNONYMS 23 ALL_TAB_COL_STATISTICS DB_TAB_COL_STATISTICS 24 ALL_TAB_COMMENTS DB_TAB_COMMENTS 25 ALL_TAB_HISTOGRAMS DB_TAB_HISTOGRAMS 26 ALL_TAB_STATS_HISTORY DB_TAB_STATS_HISTORY 27 ALL_TYPES DB_TYPES 28 ALL_PROCEDURES DB_PROCEDURES 29 ALL_SOURCE DB_SOURCE 30 ALL_TAB_COLUMNS DB_TAB_COLUMNS 31 ALL_TAB_PARTITIONS DB_TAB_PARTITIONS 32 ALL_TAB_SUBPARTITIONS DB_TAB_SUBPARTITIONS 33 ALL_TABLES DB_TABLES 34 ALL_TRIGGERS DB_TRIGGERS 35 ALL_USERS DB_USERS 36 ALL_VIEWS DB_VIEWS 37 DBA_AUDIT_OBJECT ADM_AUDIT_OBJECT 38 DBA_AUDIT_SESSION ADM_AUDIT_SESSION 39 DBA_AUDIT_STATEMENT ADM_AUDIT_STATEMENT 40 DBA_AUDIT_TRAIL ADM_AUDIT_TRAIL 41 DBA_COL_COMMENTS ADM_COL_COMMENTS 42 DBA_COL_PRIVS ADM_COL_PRIVS 43 DBA_COLL_TYPES ADM_COLL_TYPES 44 DBA_ARGUMENTS ADM_ARGUMENTS 45 DBA_CONSTRAINTS ADM_CONSTRAINTS 46 DBA_DATA_FILES ADM_DATA_FILES 47 DBA_CONS_COLUMNS ADM_CONS_COLUMNS 48 DBA_DEPENDENCIES ADM_DEPENDENCIES 49 DBA_DIRECTORIES ADM_DIRECTORIES 50 DBA_PART_COL_STATISTICS ADM_PART_COL_STATISTICS 51 DBA_PART_TABLES ADM_PART_TABLES 52 DBA_ROLE_PRIVS ADM_ROLE_PRIVS 53 DBA_ROLES ADM_ROLES 54 DBA_SCHEDULER_JOB_ARGS ADM_SCHEDULER_JOB_ARGS 55 DBA_SCHEDULER_PROGRAMS ADM_SCHEDULER_PROGRAMS 56 DBA_SCHEDULER_PROGRAM_ARGS ADM_SCHEDULER_PROGRAM_ARGS 57 DBA_HIST_SNAPSHOT ADM_HIST_SNAPSHOT 58 DBA_HIST_SQL_PLAN ADM_HIST_SQL_PLAN 59 DBA_HIST_SQLSTAT ADM_HIST_SQLSTAT 60 DBA_HIST_SQLTEXT ADM_HIST_SQLTEXT 61 DBA_ILMDATAMOVEMENTPOLICIES GS_ADM_ILMDATAMOVEMENTPOLICIES 62 DBA_ILMEVALUATIONDETAILS GS_ADM_ILMEVALUATIONDETAILS 63 DBA_ILMOBJECTS GS_ADM_ILMOBJECTS 64 DBA_ILMPARAMETERS GS_ADM_ILMPARAMETERS 65 DBA_ILMPOLICIES GS_ADM_ILMPOLICIES 66 DBA_ILMRESULTS GS_ADM_ILMRESULTS 67 DBA_ILMTASKS GS_ADM_ILMTASKS 68 DBA_IND_COLUMNS ADM_IND_COLUMNS 69 DBA_IND_EXPRESSIONS ADM_IND_EXPRESSIONS 70 DBA_IND_PARTITIONS ADM_IND_PARTITIONS 71 DBA_INDEXES ADM_INDEXES 72 DBA_OBJECTS ADM_OBJECTS 73 DBA_PART_INDEXES ADM_PART_INDEXES 74 DBA_PROCEDURES ADM_PROCEDURES 75 DBA_SCHEDULER_JOBS ADM_SCHEDULER_JOBS 76 DBA_SCHEDULER_RUNNING_JOBS ADM_SCHEDULER_RUNNING_JOBS 77 DBA_SEGMENTS ADM_SEGMENTS 78 DBA_SEQUENCES ADM_SEQUENCES 79 DBA_SOURCE ADM_SOURCE 80 DBA_IND_SUBPARTITIONS ADM_IND_SUBPARTITIONS 81 DBA_SUBPART_KEY_COLUMNS ADM_SUBPART_KEY_COLUMNS 82 DBA_SYS_PRIVS ADM_SYS_PRIVS 83 DBA_TAB_COL_STATISTICS ADM_TAB_COL_STATISTICS 84 DBA_TAB_HISTOGRAMS ADM_TAB_HISTOGRAMS 85 DBA_TAB_STATISTICS ADM_TAB_STATISTICS 86 DBA_TAB_STATS_HISTORY ADM_TAB_STATS_HISTORY 87 DBA_TABLESPACES ADM_TABLESPACES 88 DBA_TYPES ADM_TYPES 89 DBA_USERS ADM_USERS 90 DBA_SYNONYMS ADM_SYNONYMS 91 DBA_TAB_COLS ADM_TAB_COLS 92 DBA_TAB_COLUMNS ADM_TAB_COLUMNS 93 DBA_TAB_COMMENTS ADM_TAB_COMMENTS 94 DBA_TABLES ADM_TABLES 95 DBA_TAB_PARTITIONS ADM_TAB_PARTITIONS 96 DBA_TAB_SUBPARTITIONS ADM_TAB_SUBPARTITIONS 97 DBA_TRIGGERS ADM_TRIGGERS 98 DBA_TYPE_ATTRS ADM_TYPE_ATTRS 99 DBA_VIEWS ADM_VIEWS 100 ROLE_ROLE_PRIVS ROLE_ROLE_PRIVS 101 ROLE_SYS_PRIVS ROLE_SYS_PRIVS 102 ROLE_TAB_PRIVS ROLE_TAB_PRIVS 103 USER_COL_COMMENTS MY_COL_COMMENTS 104 USER_COL_PRIVS MY_COL_PRIVS 105 USER_COLL_TYPES MY_COLL_TYPES 106 USER_CONSTRAINTS MY_CONSTRAINTS 107 USER_DEPENDENCIES MY_DEPENDENCIES 108 DICT DICT 109 DICTIONARY DICTIONARY 110 DUAL DUAL 111 NLS_DATABASE_PARAMETERS NLS_DATABASE_PARAMETERS 112 NLS_INSTANCE_PARAMETERS NLS_INSTANCE_PARAMETERS 113 PLAN_TABLE PLAN_TABLE 114 USER_ILMDATAMOVEMENTPOLICIES GS_MY_ILMDATAMOVEMENTPOLICIES 115 USER_ILMEVALUATIONDETAILS GS_MY_ILMEVALUATIONDETAILS 116 USER_ILMOBJECTS GS_MY_ILMOBJECTS 117 USER_ILMPOLICIES GS_MY_ILMPOLICIES 118 USER_ILMRESULTS GS_MY_ILMRESULTS 119 USER_ILMTASKS GS_MY_ILMTASKS 120 USER_IND_COLUMNS MY_IND_COLUMNS 121 USER_IND_EXPRESSIONS MY_IND_EXPRESSIONS 122 USER_IND_PARTITIONS MY_IND_PARTITIONS 123 USER_IND_SUBPARTITIONS MY_IND_SUBPARTITIONS 124 USER_INDEXES MY_INDEXES 125 USER_JOBS MY_JOBS 126 USER_OBJECTS MY_OBJECTS 127 USER_PART_COL_STATISTICS MY_PART_COL_STATISTICS 128 USER_PART_INDEXES MY_PART_INDEXES 129 USER_PART_TABLES MY_PART_TABLES 130 USER_PROCEDURES MY_PROCEDURES 131 USER_SCHEDULER_JOB_ARGS MY_SCHEDULER_JOB_ARGS 132 USER_SCHEDULER_PROGRAM_ARGS MY_SCHEDULER_PROGRAM_ARGS 133 USER_SEQUENCES MY_SEQUENCES 134 USER_SOURCE MY_SOURCE 135 USER_SUBPART_KEY_COLUMNS MY_SUBPART_KEY_COLUMNS 136 USER_SYNONYMS MY_SYNONYMS 137 USER_SYS_PRIVS MY_SYS_PRIVS 138 USER_TAB_COL_STATISTICS MY_TAB_COL_STATISTICS 139 USER_TAB_COLUMNS MY_TAB_COLUMNS 140 USER_TAB_COMMENTS MY_TAB_COMMENTS 141 USER_TAB_HISTOGRAMS MY_TAB_HISTOGRAMS 142 USER_TAB_PARTITIONS MY_TAB_PARTITIONS 143 USER_TAB_STATISTICS MY_TAB_STATISTICS 144 USER_TAB_STATS_HISTORY MY_TAB_STATS_HISTORY 145 USER_TABLES MY_TABLES 146 USER_TABLESPACES MY_TABLESPACES 147 USER_TRIGGERS MY_TRIGGERS 148 USER_TYPE_ATTRS MY_TYPE_ATTRS 149 USER_TYPES MY_TYPES 150 USER_VIEWS MY_VIEWS 151 V$NLS_PARAMETERS V$NLS_PARAMETERS 152 V$SESSION_WAIT V$SESSION_WAIT 153 V$SYSSTAT V$SYSSTAT 154 V$SYSTEM_EVENT V$SYSTEM_EVENT 155 V$VERSION V$VERSION 156 V$INSTANCE V_INSTANCE 157 GV$INSTANCE GV_INSTANCE 158 V$MYSTAT V_MYSTAT 159 V$SESSION V_SESSION 160 GV$SESSION GV_SESSION 161 V$SESSION_LONGOPS DV_SESSION_LONGOPS 162 V$SESSION DV_SESSIONS 163 ALL_ARGUMENTS DB_ARGUMENTS 164 USER_CONS_COLUMNS MY_CONS_COLUMNS 165 USER_PART_KEY_COLUMNS MY_PART_KEY_COLUMNS 166 USER_ROLE_PRIVS MY_ROLE_PRIVS 167 DBA_TAB_PRIVS ADM_TAB_PRIVS 168 USER_SCHEDULER_JOBS MY_SCHEDULER_JOBS 169 V$LOCK V$LOCK 170 V$DBLINK V$DBLINK 171 V$GLOBAL_TRANSACTION V$GLOBAL_TRANSACTION 172 V$OPEN_CURSOR V$OPEN_CURSOR 173 V$GLOBAL_OPEN_CURSOR V$GLOBAL_OPEN_CURSOR 174 ALL_TAB_PRIVS DB_TAB_PRIVS 175 ALL_TAB_MODIFICATIONS DB_TAB_MODIFICATIONS 176 USER_TAB_MODIFICATIONS MY_TAB_MODIFICATIONS 177 USER_AUDIT_TRAIL MY_AUDIT_TRAIL 父主题: 分布式
  • 标识符 M-Compatibility模式下标识符存在以下差异: GaussDB无引号标识符中不支持以美元符号($)开头,MySQL无引号标识符中支持。 GaussDB无引号标识符中的支持大小写敏感的数据库对象。 GaussDB标识符支持U+0080~U+00FF扩展字符,MySQL标识符支持U+0080~U+FFFF的扩展字符。 无引号标识符中,GaussDB不支持创建以数字开头包含一个e或E结尾作为标识符的表,例如: -- GaussDB报错不支持,MySQL支持 m_db=# CREATE TABLE 23e(c1 int); ERROR: syntax error at or near "23" LINE 1: CREATE TABLE 23e(c1 int); ^ m_db=# CREATE TABLE t1(23E int); ERROR: syntax error at or near "23" LINE 1: CREATE TABLE t1(23E int); ^ 有引号标识符中,GaussDB对于创建了列名为纯数字或科学计算法的表,不支持直接使用,需要在引号中使用;对于点操作符(.)场景,列名为纯数字或科学计算法的表也需要在引号中使用。例如: -- 创建列名为纯数字或科学计算法的表 m_db=# CREATE TABLE t1(`123` int, `1e3` int, `1e` int); CREATE TABLE -- 向表中插入数据 m_db=# INSERT INTO t1 VALUES(7, 8, 9); INSERT 0 1 -- 结果非预期,但与MySQL结果一致 m_db=# SELECT 123 FROM t1; ?column? ---------- 123 (1 row) -- 结果非预期,但与MySQL结果一致 m_db=# SELECT 1e3 FROM t1; ?column? ---------- 1000 (1 row) -- 结果非预期,并且与MySQL结果不一致 m_db=# SELECT 1e FROM t1; e --- 1 (1 row) -- 正确用法 m_db=# SELECT `123` FROM t1; 123 ----- 7 (1 row) m_db=# SELECT `1e3` FROM t1; 1e3 ----- 8 (1 row) m_db=# SELECT `1e` FROM t1; 1e ---- 9 (1 row) -- 点操作符的场景,GaussDB不支持,MySQL支持 m_db=# SELECT t1.123 FROM t1; ERROR: syntax error at or near ".123" LINE 1: SELECT t1.123 FROM t1; ^ m_db=# SELECT t1.1e3 FROM t1; ERROR: syntax error at or near "1e3" LINE 1: SELECT t1.1e3 FROM t1; ^ m_db=# SELECT t1.1e FROM t1; ERROR: syntax error at or near "1" LINE 1: SELECT t1.1e FROM t1; ^ -- 点操作符的场景,正确用法: m_db=# SELECT t1.`123` FROM t1; 123 ----- 7 (1 row) m_db=# SELECT t1.`1e3` FROM t1; 1e3 ----- 8 (1 row) m_db=# SELECT t1.`1e` FROM t1; 1e ---- 9 (1 row) m_db=# DROP TABLE t1; DROP TABLE GaussDB分区名使用双引号(需要设置SQL_MODE为ANSI_QUOTES)或反引号是区分大小写的,MySQL不区分。 父主题: SQL
  • 数字操作函数 表1 数字操作函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 log2() 支持 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异。 支持数据类型有: bigint、int16、int、smallint 、tinyint整数类型。 bigint unsigned、integer unsigned、smallint unsigned、tinyint unsigned无符号整数类型。 numeric、real浮点数类型。 character、character varying、clob、text字符串类型,仅支持纯数字整数字符串。 set类型。 NULL空类型。 2 log10() 支持 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示; 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异; 支持数据类型有: bigint、int16、int、smallint 、tinyint整数类型。 bigint unsigned、integer unsigned、smallint unsigned、tinyint unsigned无符号整数类型。 numeric、real浮点数类型。 character、character varying、clob、text字符串类型,仅支持纯数字整数字符串。 set类型。 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_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_DIRECTORIES DB_DIRECTORIES 11 ALL_IND_EXPRESSIONS DB_IND_EXPRESSIONS 12 ALL_IND_PARTITIONS DB_IND_PARTITIONS 13 ALL_INDEXES DB_INDEXES 14 ALL_IND_SUBPARTITIONS DB_IND_SUBPARTITIONS 15 ALL_OBJECTS DB_OBJECTS 16 ALL_PART_COL_STATISTICS DB_PART_COL_STATISTICS 17 ALL_PART_KEY_COLUMNS DB_PART_KEY_COLUMNS 18 ALL_PART_TABLES DB_PART_TABLES 19 ALL_SCHEDULER_JOB_ARGS DB_SCHEDULER_JOB_ARGS 20 ALL_SCHEDULER_PROGRAM_ARGS DB_SCHEDULER_PROGRAM_ARGS 21 ALL_SEQUENCES DB_SEQUENCES 22 ALL_SUBPART_COL_STATISTICS DB_SUBPART_COL_STATISTICS 23 ALL_SUBPART_KEY_COLUMNS DB_SUBPART_KEY_COLUMNS 24 ALL_SYNONYMS DB_SYNONYMS 25 ALL_TAB_COL_STATISTICS DB_TAB_COL_STATISTICS 26 ALL_TAB_COMMENTS DB_TAB_COMMENTS 27 ALL_TAB_HISTOGRAMS DB_TAB_HISTOGRAMS 28 ALL_TAB_STATS_HISTORY DB_TAB_STATS_HISTORY 29 ALL_TYPES DB_TYPES 30 ALL_PART_INDEXES DB_PART_INDEXES 31 ALL_PROCEDURES DB_PROCEDURES 32 ALL_SOURCE DB_SOURCE 33 ALL_TAB_COLUMNS DB_TAB_COLUMNS 34 ALL_TAB_PARTITIONS DB_TAB_PARTITIONS 35 ALL_TAB_SUBPARTITIONS DB_TAB_SUBPARTITIONS 36 ALL_TABLES DB_TABLES 37 ALL_TRIGGERS DB_TRIGGERS 38 ALL_USERS DB_USERS 39 ALL_VIEWS DB_VIEWS 40 DBA_AUDIT_OBJECT ADM_AUDIT_OBJECT 41 DBA_AUDIT_SESSION ADM_AUDIT_SESSION 42 DBA_AUDIT_STATEMENT ADM_AUDIT_STATEMENT 43 DBA_AUDIT_TRAIL ADM_AUDIT_TRAIL 44 DBA_COL_COMMENTS ADM_COL_COMMENTS 45 DBA_COL_PRIVS ADM_COL_PRIVS 46 DBA_COLL_TYPES ADM_COLL_TYPES 47 DBA_ARGUMENTS ADM_ARGUMENTS 48 DBA_CONSTRAINTS ADM_CONSTRAINTS 49 DBA_DATA_FILES ADM_DATA_FILES 50 DBA_CONS_COLUMNS ADM_CONS_COLUMNS 51 DBA_DEPENDENCIES ADM_DEPENDENCIES 52 DBA_DIRECTORIES ADM_DIRECTORIES 53 DBA_PART_COL_STATISTICS ADM_PART_COL_STATISTICS 54 DBA_PART_TABLES ADM_PART_TABLES 55 DBA_RECYCLEBIN ADM_RECYCLEBIN 56 DBA_ROLE_PRIVS ADM_ROLE_PRIVS 57 DBA_ROLES ADM_ROLES 58 DBA_SCHEDULER_JOB_ARGS ADM_SCHEDULER_JOB_ARGS 59 DBA_SCHEDULER_PROGRAMS ADM_SCHEDULER_PROGRAMS 60 DBA_SCHEDULER_PROGRAM_ARGS ADM_SCHEDULER_PROGRAM_ARGS 61 DBA_HIST_SNAPSHOT ADM_HIST_SNAPSHOT 62 DBA_HIST_SQL_PLAN ADM_HIST_SQL_PLAN 63 DBA_HIST_SQLSTAT ADM_HIST_SQLSTAT 64 DBA_HIST_SQLTEXT ADM_HIST_SQLTEXT 65 DBA_ILMDATAMOVEMENTPOLICIES GS_ADM_ILMDATAMOVEMENTPOLICIES 66 DBA_ILMEVALUATIONDETAILS GS_ADM_ILMEVALUATIONDETAILS 67 DBA_ILMOBJECTS GS_ADM_ILMOBJECTS 68 DBA_ILMPARAMETERS GS_ADM_ILMPARAMETERS 69 DBA_ILMPOLICIES GS_ADM_ILMPOLICIES 70 DBA_ILMRESULTS GS_ADM_ILMRESULTS 71 DBA_ILMTASKS GS_ADM_ILMTASKS 72 DBA_IND_COLUMNS ADM_IND_COLUMNS 73 DBA_IND_EXPRESSIONS ADM_IND_EXPRESSIONS 74 DBA_IND_PARTITIONS ADM_IND_PARTITIONS 75 DBA_INDEXES ADM_INDEXES 76 DBA_OBJECTS ADM_OBJECTS 77 DBA_PART_INDEXES ADM_PART_INDEXES 78 DBA_PROCEDURES ADM_PROCEDURES 79 DBA_SCHEDULER_JOBS ADM_SCHEDULER_JOBS 80 DBA_SCHEDULER_RUNNING_JOBS ADM_SCHEDULER_RUNNING_JOBS 81 DBA_SEGMENTS ADM_SEGMENTS 82 DBA_SEQUENCES ADM_SEQUENCES 83 DBA_SOURCE ADM_SOURCE 84 DBA_IND_SUBPARTITIONS ADM_IND_SUBPARTITIONS 85 DBA_SUBPART_COL_STATISTICS ADM_SUBPART_COL_STATISTICS 86 DBA_SUBPART_KEY_COLUMNS ADM_SUBPART_KEY_COLUMNS 87 DBA_SYS_PRIVS ADM_SYS_PRIVS 88 DBA_TAB_COL_STATISTICS ADM_TAB_COL_STATISTICS 89 DBA_TAB_HISTOGRAMS ADM_TAB_HISTOGRAMS 90 DBA_TAB_STATISTICS ADM_TAB_STATISTICS 91 DBA_TAB_STATS_HISTORY ADM_TAB_STATS_HISTORY 92 DBA_TABLESPACES ADM_TABLESPACES 93 DBA_TYPES ADM_TYPES 94 DBA_USERS ADM_USERS 95 DBA_SYNONYMS ADM_SYNONYMS 96 DBA_TAB_COLS ADM_TAB_COLS 97 DBA_TAB_COLUMNS ADM_TAB_COLUMNS 98 DBA_TAB_COMMENTS ADM_TAB_COMMENTS 99 DBA_TABLES ADM_TABLES 100 DBA_TAB_PARTITIONS ADM_TAB_PARTITIONS 101 DBA_TAB_SUBPARTITIONS ADM_TAB_SUBPARTITIONS 102 DBA_TRIGGERS ADM_TRIGGERS 103 DBA_TYPE_ATTRS ADM_TYPE_ATTRS 104 DBA_VIEWS ADM_VIEWS 105 ROLE_ROLE_PRIVS ROLE_ROLE_PRIVS 106 ROLE_SYS_PRIVS ROLE_SYS_PRIVS 107 ROLE_TAB_PRIVS ROLE_TAB_PRIVS 108 USER_COL_COMMENTS MY_COL_COMMENTS 109 USER_COL_PRIVS MY_COL_PRIVS 110 USER_COLL_TYPES MY_COLL_TYPES 111 USER_CONSTRAINTS MY_CONSTRAINTS 112 USER_DEPENDENCIES MY_DEPENDENCIES 113 DICT DICT 114 DICTIONARY DICTIONARY 115 DUAL DUAL 116 NLS_DATABASE_PARAMETERS NLS_DATABASE_PARAMETERS 117 NLS_INSTANCE_PARAMETERS NLS_INSTANCE_PARAMETERS 118 PLAN_TABLE PLAN_TABLE 119 USER_ERRORS MY_ERRORS 120 USER_ILMDATAMOVEMENTPOLICIES GS_MY_ILMDATAMOVEMENTPOLICIES 121 USER_ILMEVALUATIONDETAILS GS_MY_ILMEVALUATIONDETAILS 122 USER_ILMOBJECTS GS_MY_ILMOBJECTS 123 USER_ILMPOLICIES GS_MY_ILMPOLICIES 124 USER_ILMRESULTS GS_MY_ILMRESULTS 125 USER_ILMTASKS GS_MY_ILMTASKS 126 USER_IND_COLUMNS MY_IND_COLUMNS 127 USER_IND_EXPRESSIONS MY_IND_EXPRESSIONS 128 USER_IND_PARTITIONS MY_IND_PARTITIONS 129 USER_IND_SUBPARTITIONS MY_IND_SUBPARTITIONS 130 USER_INDEXES MY_INDEXES 131 USER_JOBS MY_JOBS 132 USER_OBJECTS MY_OBJECTS 133 USER_PART_COL_STATISTICS MY_PART_COL_STATISTICS 134 USER_PART_INDEXES MY_PART_INDEXES 135 USER_PART_TABLES MY_PART_TABLES 136 USER_PROCEDURES MY_PROCEDURES 137 USER_RECYCLEBIN MY_RECYCLEBIN 138 USER_SCHEDULER_JOB_ARGS MY_SCHEDULER_JOB_ARGS 139 USER_SCHEDULER_PROGRAM_ARGS MY_SCHEDULER_PROGRAM_ARGS 140 USER_SEQUENCES MY_SEQUENCES 141 USER_SOURCE MY_SOURCE 142 USER_SUBPART_KEY_COLUMNS MY_SUBPART_KEY_COLUMNS 143 USER_SYNONYMS MY_SYNONYMS 144 USER_SYS_PRIVS MY_SYS_PRIVS 145 USER_TAB_COL_STATISTICS MY_TAB_COL_STATISTICS 146 USER_TAB_COLUMNS MY_TAB_COLUMNS 147 USER_TAB_COMMENTS MY_TAB_COMMENTS 148 USER_TAB_HISTOGRAMS MY_TAB_HISTOGRAMS 149 USER_TAB_PARTITIONS MY_TAB_PARTITIONS 150 USER_TAB_STATISTICS MY_TAB_STATISTICS 151 USER_TAB_STATS_HISTORY MY_TAB_STATS_HISTORY 152 USER_TAB_SUBPARTITIONS MY_TAB_SUBPARTITIONS 153 USER_TABLES MY_TABLES 154 USER_TABLESPACES MY_TABLESPACES 155 USER_TRIGGERS MY_TRIGGERS 156 USER_TYPE_ATTRS MY_TYPE_ATTRS 157 USER_TYPES MY_TYPES 158 USER_VIEWS MY_VIEWS 159 V$GLOBAL_TRANSACTION V$GLOBAL_TRANSACTION 160 V$NLS_PARAMETERS V$NLS_PARAMETERS 161 V$SESSION_WAIT V$SESSION_WAIT 162 V$SYSSTAT V$SYSSTAT 163 V$SYSTEM_EVENT V$SYSTEM_EVENT 164 V$VERSION V$VERSION 165 V$INSTANCE V_INSTANCE 166 GV$INSTANCE GV_INSTANCE 167 V$MYSTAT V_MYSTAT 168 V$SESSION V_SESSION 169 GV$SESSION GV_SESSION 170 V$SESSION_LONGOPS DV_SESSION_LONGOPS 171 V$SESSION DV_SESSIONS 172 ALL_ARGUMENTS DB_ARGUMENTS 173 USER_CONS_COLUMNS MY_CONS_COLUMNS 174 USER_PART_KEY_COLUMNS MY_PART_KEY_COLUMNS 175 USER_SUBPART_COL_STATISTICS MY_SUBPART_COL_STATISTICS 176 USER_ROLE_PRIVS MY_ROLE_PRIVS 177 DBA_TAB_PRIVS ADM_TAB_PRIVS 178 USER_SCHEDULER_JOBS MY_SCHEDULER_JOBS 179 V$LOCK V$LOCK 180 V$DBLINK V$DBLINK 181 V$OPEN_CURSOR V$OPEN_CURSOR 182 ALL_TAB_PRIVS DB_TAB_PRIVS 183 ALL_TAB_MODIFICATIONS DB_TAB_MODIFICATIONS 184 USER_TAB_MODIFICATIONS MY_TAB_MODIFICATIONS 185 USER_AUDIT_TRAIL MY_AUDIT_TRAIL 父主题: 主备版
  • 字符串函数 表1 字符串函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 ASCII() 支持。 - 2 BIT_LENGTH() 支持。 - 3 CHAR_LENGTH() 支持,有差异。 GaussDB此函数如果数据库字符集是SQL_ASCII,CHAR_LENGTH()会返回字节数而非字符数。 4 CHARACTER_LENGTH() 支持,有差异。 GaussDB此函数如果数据库字符集是SQL_ASCII,CHARACTER_LENGTH()会返回字节数而非字符数。 5 CONCAT() 支持。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 6 CONCAT_WS() 支持。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 7 HEX() 支持。 - 8 LENGTH() 支持。 - 9 LPAD() 支持,有差异。 MySQL默认最大填充长度为1398101,GaussDB默认最大长度为1048576。在不同字符集下,最大填充长度会有差异,例如字符集为'GBK'时,GaussDB默认最大长度为2097152。 如果数据库字符集是SQL_ASCII,可能产生未预期的结果。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 10 REPEAT() 支持。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 11 REPLACE() 支持。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 12 RPAD() 支持,有差异。 MySQL默认最大填充长度为1398101,GaussDB默认最大长度为1048576。在不同字符集下,最大填充长度会有差异,例如字符集为'GBK'时,GaussDB默认最大长度为2097152。 如果数据库字符集是SQL_ASCII,可能产生未预期的结果。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 13 SPACE() 支持。 - 14 STRCMP() 支持,有差异。 如果数据库字符集是SQL_ASCII,可能产生未预期的结果。 15 FIND_IN_SET() 支持,有差异。 当指定数据库使用的字符编码是SQL_ASCII时,服务器把字节值0~127根据ASCII标准解释,而字节值128~255则当作无法解析的字符;如果该函数的输入输出包含了任何非ASCII数据,数据库将无法帮助你转换或者校验非ASCII字符。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为LONGBLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 16 LCASE() 17 LEFT() 18 LOWER() 19 LTRIM() 20 REVERSE() 21 RIGHT() 22 RTRIM() 23 SUBSTR() 24 SUBSTRING() 25 SUBSTRING_INDEX() 26 TRIM() 27 UCASE() 28 UPPER() 29 UNHEX() 支持。 MySQL的返回值类型为BINARY、VARBINARY、BLOB、MEDIUMBLOB、LONGBLOB,GaussDB返回值类型固定为LONGBLOB。 30 FIELD() 支持。 - 父主题: 系统函数
共100000条