检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
字符串类型 概述 MySQL以字符单位解释字符列定义中的长度规范。这适用于 CHAR、VARCHAR和TEXT类型。DSC工具支持以下列出类型转换。 类型对照 表1 字符串类型对照表 MySQL字符串类型 MySQL INPUT GaussDB(DWS) OUTPUT CHAR CHAR[(0)]
(_)代表(匹配)任何单个字符; 百分号(%)代表任意串的通配符。 要匹配文本里的下划线(_)或者百分号(%),在提供的模式里相应字符必须前导逃逸字符。逃逸字符的作用是禁用元字符的特殊含义,缺省的逃逸字符是反斜线,也可以用ESCAPE子句指定一个不同的逃逸字符。 要匹配逃逸字符本身,需写两个
字符类型 GaussDB(DWS)支持的字符类型请参见表1。字符串操作符和相关的内置函数请参见字符处理函数和操作符。 表1 字符类型 名称 描述 长度 存储空间 CHAR(n) CHARACTER(n) NCHAR(n) 定长字符串,不足填充空格。 n是指字节长度,如不带精度n,默认精度为1。n小于10485761。
字符类型 GaussDB(DWS)支持的字符类型请参见表1。字符串操作符和相关的内置函数请参见字符处理函数和操作符。 表1 字符类型 名称 描述 长度 存储空间 CHAR(n) CHARACTER(n) NCHAR(n) 定长字符串,不足填充空格。 n是指字节长度,如不带精度n,默认精度为1。n小于10485761。
字符处理函数和操作符 GaussDB(DWS)提供的字符处理函数和操作符主要用于字符串与字符串、字符串与非字符串之间的连接,以及字符串的模式匹配操作。 ascii(string) 描述:参数string的第一个字符的ASCII码。 返回值类型:integer 示例: 1 2 3 4
(1 row) 设置数据库的字符集编码 GaussDB(DWS)不支持修改已创建数据库的字符编码格式。 如果需要指定数据库的字符集编码格式,可按照下面的CREATE DATABASE语法格式,使用template0新建一个数据库。为了适应全球化的需求,使数据库编码能够存储与表示绝
MySQL配置 设置MySQL配置参数可在迁移MySQL数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-mysql.properties文件,并根据实际需要设置features-mysql.properties文件中的配置参数中的参数。 表1 features-mysql
MySQL SQL迁移 工具支持从MySQL到GaussDB(DWS)的迁移,包括模式、DML、查询、系统函数、PL/SQL等。 在LINUX中执行MySQL迁移 在Linux中执行以下命令开始迁移。用户需指定源数据库、输入和输出文件夹路径和日志路径;应用程序语言类型是SQL。
二进制字符串函数和操作符 SQL定义了一些二进制字符串函数,这些函数使用关键字而不是逗号来分隔参数。另外,DWS提供了函数调用所使用的常用语法。 octet_length(string) 描述:二进制字符串中的字节数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT
字符处理函数和操作符 GaussDB(DWS)提供的字符处理函数和操作符主要用于字符串与字符串、字符串与非字符串之间的连接,以及字符串的模式匹配操作。 bit_length(string) 描述:字符串的位数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT
数据库管理 DSC工具迁移时会将MySQL SET CHARACTER SET语句迁移为SET SESSION NAMES。字符集对照如下表: 表1 字符集对照表 MySQL CHARACTER SET GaussDB(DWS) SESSION NAMES ASCII SQL_ASCII
字符串函数(Oracle) 本节介绍如下字符串函数: LISTAGG STRAGG WM_CONCAT NVL2和REPLACE QUOTE LISTAGG LISTAGG根据ORDER BY子句对每个组中的列值进行排序,并将排序后的结果拼接起来。 图1 输入:LISTAGG 图2
字符串函数 CHAR函数 输入:CHAR 1 CHAR( expression1 ) 输出: 1 LENGTH( expression1 ) CHARACTERS函数 输入:CHARACTERS 1 CHARACTERS( expression1 ) 输出: 1 LENGTH(
根据字符集,字符类型如果为gbk,每个字符占用2个字节;字符类型如果为utf8,每个字符最多占用3个字节。根据转换规则,同样的字段长度,会导致GaussDB(DWS)出现字段超长的问题。 处理方法 假设MySQL字段为varchar(n),则将GaussDB(DWS)对应的字段长度设置为varchar(n*3)即可。
注释 MySQL支持由 '#' 或 '--' 字符引起的单行注释,而GaussDB(DWS)仅支持由双破折号 '--' 字符引起的单行注释。DSC工具迁移时会将 '#' 转化为 '--' 注释。 输入示例 1 2 3 4 5 6 7 ## comment sample create
最大18字节限制。 当表中某一字段包含有中文字符时,可使用char_length或length函数来查询字段字符长度,使用lengthb函数来查询字段字节长度。 1 2 3 4 5 SELECT length('数据库database'); length --------
MySQL语法迁移 支持的关键词和特性 数据类型 函数和表达式 表(可选参数、操作) 索引 注释 数据库 数据操作语句(DML) 事务管理和数据库管理 父主题: DSC
unt抽取的字符长度用n来表示。 s=0时存在兼容行为差异。 表2 substr()与ORA、TD和MySQL兼容模式行为 参数场景 ORA兼容 TD兼容 MySQL兼容 s > 0 从第s个字符位置开始,截取n个字节 从第s个字符位置开始,截取n个字符 从第s个字符位置开始,截取n个字符
characters]) 从字符串string的指定位置删除只包含characters中字符(缺省为空格)的最长的字符串。 从字符串string的指定位置删除只包含characters中字符(缺省为空格)的最长的字符串。 从字符串string的指定位置删除等于characters的字符串(缺省为空格)。
wWw.",返回string字符串"www.wWw.cloud.wWw.com"中第2次出现delimiter分隔符之前的子串"www.wWw.cloud"。 1 2 3 4 5 SELECT SUBSTRING_INDEX('www.wWw.cloud.wWw.com', '.wWw