From 3cd8588abbd9ec90e81d0a67c650ec6f6f65ebca Mon Sep 17 00:00:00 2001 From: travelliu Date: Tue, 29 Mar 2022 18:31:26 +0800 Subject: [PATCH] feat(mtk): add params desc and fix desc issue --- product/en/docs-mtk/v2.0/faqs.md | 48 ++++++++++++++----- product/en/docs-mtk/v2.0/mtk-config.md | 19 +++++++- .../docs-mtk/v2.0/mtk-oracle-to-openGauss.md | 39 +++++++++++++++ product/zh/docs-mtk/v2.0/faqs.md | 48 ++++++++++++++----- product/zh/docs-mtk/v2.0/mtk-config.md | 19 +++++++- .../docs-mtk/v2.0/mtk-oracle-to-openGauss.md | 39 +++++++++++++++ 6 files changed, 186 insertions(+), 26 deletions(-) diff --git a/product/en/docs-mtk/v2.0/faqs.md b/product/en/docs-mtk/v2.0/faqs.md index d1907223..05eec391 100644 --- a/product/en/docs-mtk/v2.0/faqs.md +++ b/product/en/docs-mtk/v2.0/faqs.md @@ -8,6 +8,14 @@ date: 2021-09-14 # FAQs +## Support character set conversion? + +Character set conversion is supported by default. For example, the source database GBK is migrated to the destination database UTF8. + +The Column length changes when performing string conversion. + +Char type data needs to be noted. For example, in Oracle, Char(1) migrates to openGauss/MogDB, which will become Char(2), and the service query will have multiple spaces + ## Column length change? Yes. Considering that other non-single-byte strings such as Chinese are subject to length changes due to inconsistent database encoding. @@ -34,18 +42,34 @@ The following scenarios exist. |Oracle |AL32UTF8 |VARCHAR2(100 CHAR)|VARCHAR(300)|openGauss|UTF8|A| |Oracle |AL32UTF8 |VARCHAR2(100 BYTE)|VARCHAR(100)|openGauss|UTF8|PG| |Oracle |AL32UTF8 |VARCHAR2(100 CHAR)|VARCHAR(100)|openGauss|UTF8|PG| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(300)|openGauss|UTF8|A| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(300)|openGauss|GBK|A| -|MySQL |UTF8 |VARCHAR(100 )|VARCHAR(300)|openGauss|UTF8|A| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|GBK|PG| -|MySQL |UTF8 |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(150)|openGauss|UTF8|A| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|GBK|A| -|DB2 |UTF8 |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|A| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|GBK|PG| -|DB2 |UTF8 |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| +|oracle |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|oracle |ZHS16GBK |CHAR(2 ) |CHAR(3)|openGauss|UTF8|A| +|oracle |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|oracle |ZHS16GBK |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| +|oracle |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|oracle |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|A| +|oracle |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|oracle |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(300)|openGauss|UTF8|A| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(300)|openGauss|GBK|A| +|MySQL |UTF8 |VARCHAR(100 ) |VARCHAR(300)|openGauss|UTF8|A| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|GBK|PG| +|MySQL |UTF8 |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(150)|openGauss|UTF8|A| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|GBK|A| +|DB2 |UTF8 |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|A| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|GBK|PG| +|DB2 |UTF8 |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|DB2 |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|DB2 |ZHS16GBK |CHAR(2 ) |CHAR(3)|openGauss|UTF8|A| +|DB2 |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|DB2 |ZHS16GBK |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| +|DB2 |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|DB2 |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|A| +|DB2 |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|DB2 |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| ## Empty String and NULL conversions ? diff --git a/product/en/docs-mtk/v2.0/mtk-config.md b/product/en/docs-mtk/v2.0/mtk-config.md index 5e6bbf00..69d5aab2 100644 --- a/product/en/docs-mtk/v2.0/mtk-config.md +++ b/product/en/docs-mtk/v2.0/mtk-config.md @@ -767,6 +767,23 @@ select utl_raw.cast_to_varchar2(hextoraw('D6A4C8AFCDB6D6')) from dual; -- ORA- select utl_raw.cast_to_varchar2(hextoraw('D6A4C8AFCDB6D6'))||'' from dual; -- normal ``` +### convertPackageMethod + +string + +Supported after `v2.2.5` version. + +How to migrate Oracle Package to openGauss/MogDB + +- schema +- package + +Default: `schema` + +openGauss database version greater than or equal to 2.1.0 can be configured as `package` or `schema` + +openGauss databases smaller than 2.1.0 can only be configured as `schema` + ## limit ```json @@ -782,7 +799,7 @@ select utl_raw.cast_to_varchar2(hextoraw('D6A4C8AFCDB6D6'))||'' from dual; -- no ### parallel -Indicates the degree of parallelism. This parameter is used only when table data is migrated. It will be later used during index creation. +Indicates the degree of parallelism. Create tables, constraints, etc. in parallel. ### fetchSize diff --git a/product/en/docs-mtk/v2.0/mtk-oracle-to-openGauss.md b/product/en/docs-mtk/v2.0/mtk-oracle-to-openGauss.md index e3ee853f..dbbdebe4 100644 --- a/product/en/docs-mtk/v2.0/mtk-oracle-to-openGauss.md +++ b/product/en/docs-mtk/v2.0/mtk-oracle-to-openGauss.md @@ -119,6 +119,45 @@ Therefore, the values **A**, **B**, and **PG** are commonly used. To be supplemented. This document lists only part problems. +### Char Column Type + +If character set conversion is present, note the Char type field data. + +- Oracle + +```sql + +SQL> create table tab_char(id number, col_char char(2)); + +Table created. + +SQL> insert into tab_char values (1,'1'); + +1 row created. + +SQL> select id,'"'||col_char||'"' ,col_char from tab_char; + + ID '"' C +---------- --- - + 1 "1 " 1 +``` + +- openGauss/MogDB + +Due to the migration from the GBK character set to UTF8, the field length becomes larger + +```sql +MogDB=#create table tab_char(id bigint, col_char char(3)); +CREATE TABLE +MogDB=#insert into tab_char values (1,'1'); +INSERT 0 1 +MogDB=#select id,concat('"',col_char,'"') ,col_char from tab_char; + id | concat | col_char +----+--------+---------- + 1 | "1 " | 1 >> There is one more space +(1 row) +``` + ### Sequence If the current value is greater than 9223372036854775807, an error will occur. For other situations, the log will be printed. diff --git a/product/zh/docs-mtk/v2.0/faqs.md b/product/zh/docs-mtk/v2.0/faqs.md index 6376e063..79d3196e 100644 --- a/product/zh/docs-mtk/v2.0/faqs.md +++ b/product/zh/docs-mtk/v2.0/faqs.md @@ -8,6 +8,14 @@ date: 2021-09-14 # FAQs +## 支持字符集转换? + +默认支持字符集转换。如源库GBK迁移到目标库UTF8. + +在进行字符串转换时字段长度会进行变化. + +Char类型数据需要注意. 如在Oracle里Char(1)迁移到openGauss/MogDB就会变成Char(2),业务查询会多个空格 + ## 存在字段长度变化? 会. 考虑到中文等其他非单字节字符串在数据库编码不一致下进行长度变化. 存在以下场景. @@ -32,18 +40,34 @@ date: 2021-09-14 |Oracle |AL32UTF8 |VARCHAR2(100 CHAR)|VARCHAR(300)|openGauss|UTF8|A| |Oracle |AL32UTF8 |VARCHAR2(100 BYTE)|VARCHAR(100)|openGauss|UTF8|PG| |Oracle |AL32UTF8 |VARCHAR2(100 CHAR)|VARCHAR(100)|openGauss|UTF8|PG| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(300)|openGauss|UTF8|A| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(300)|openGauss|GBK|A| -|MySQL |UTF8 |VARCHAR(100 )|VARCHAR(300)|openGauss|UTF8|A| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| -|MySQL |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|GBK|PG| -|MySQL |UTF8 |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(150)|openGauss|UTF8|A| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|GBK|A| -|DB2 |UTF8 |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|A| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| -|DB2 |GBK |VARCHAR(100 )|VARCHAR(100)|openGauss|GBK|PG| -|DB2 |UTF8 |VARCHAR(100 )|VARCHAR(100)|openGauss|UTF8|PG| +|oracle |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|oracle |ZHS16GBK |CHAR(2 ) |CHAR(3)|openGauss|UTF8|A| +|oracle |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|oracle |ZHS16GBK |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| +|oracle |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|oracle |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|A| +|oracle |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|oracle |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(300)|openGauss|UTF8|A| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(300)|openGauss|GBK|A| +|MySQL |UTF8 |VARCHAR(100 ) |VARCHAR(300)|openGauss|UTF8|A| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|MySQL |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|GBK|PG| +|MySQL |UTF8 |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(150)|openGauss|UTF8|A| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|GBK|A| +|DB2 |UTF8 |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|A| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|DB2 |GBK |VARCHAR(100 ) |VARCHAR(100)|openGauss|GBK|PG| +|DB2 |UTF8 |VARCHAR(100 ) |VARCHAR(100)|openGauss|UTF8|PG| +|DB2 |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|DB2 |ZHS16GBK |CHAR(2 ) |CHAR(3)|openGauss|UTF8|A| +|DB2 |ZHS16GBK |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|DB2 |ZHS16GBK |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| +|DB2 |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|A| +|DB2 |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|A| +|DB2 |AL32UTF8 |CHAR(1 ) |CHAR(1)|openGauss|UTF8|PG| +|DB2 |AL32UTF8 |CHAR(2 ) |CHAR(2)|openGauss|UTF8|PG| ## 存在空字符串和NULL转换? diff --git a/product/zh/docs-mtk/v2.0/mtk-config.md b/product/zh/docs-mtk/v2.0/mtk-config.md index 1d053f84..ac6ee65c 100644 --- a/product/zh/docs-mtk/v2.0/mtk-config.md +++ b/product/zh/docs-mtk/v2.0/mtk-config.md @@ -756,6 +756,23 @@ select utl_raw.cast_to_varchar2(hextoraw('D6A4C8AFCDB6D6')) from dual; -- 报 select utl_raw.cast_to_varchar2(hextoraw('D6A4C8AFCDB6D6'))||'' from dual; -- 不报错 ``` +### convertPackageMethod + +string + +`v2.2.5`之后的版本支持本参数。 + +迁移 Oracle Package 到 openGauss/MogDB 的方式 + +- schema +- package + +默认值: `schema` + +openGauss 数据库版本大于等于2.1.0可配置为 `package` 或 `schema` + +openGauss 数据库小于2.1.0 只能配置为 `schema` + ## limit ```json @@ -771,7 +788,7 @@ select utl_raw.cast_to_varchar2(hextoraw('D6A4C8AFCDB6D6'))||'' from dual; -- ### parallel -并行度,现在只在迁移表数据时有用。后面增加在创建索引时指定并行度 +并行度。并行创建表,索引等 ### fetchSize diff --git a/product/zh/docs-mtk/v2.0/mtk-oracle-to-openGauss.md b/product/zh/docs-mtk/v2.0/mtk-oracle-to-openGauss.md index 1df26eea..70d6f400 100644 --- a/product/zh/docs-mtk/v2.0/mtk-oracle-to-openGauss.md +++ b/product/zh/docs-mtk/v2.0/mtk-oracle-to-openGauss.md @@ -102,6 +102,45 @@ DBCOMPATIBILITY [ = ] compatibility_type > - 将字符串转换成整数类型时,如果输入不合法,B兼容性会将输入转换为0,而其它兼容性则会报错。 > - PG兼容性下,CHAR和VARCHAR以字符为计数单位,其它兼容性以字节为计数单位。例如,对于UTF-8字符集,CHAR(3)在PG兼容性下能存放3个中文字符,而在其它兼容性下只能存放1个中文字符。 +### Char 字段类型 + +如果存在字符集转换,需要注意Char类型字段数据. + +- Oracle + +```sql + +SQL> create table tab_char(id number, col_char char(2)); + +Table created. + +SQL> insert into tab_char values (1,'1'); + +1 row created. + +SQL> select id,'"'||col_char||'"' ,col_char from tab_char; + + ID '"' C +---------- --- - + 1 "1 " 1 +``` + +- openGauss/MogDB + +由于从GBK字符集迁移到UTF8,字段长度会变大 + +```sql +MogDB=#create table tab_char(id bigint, col_char char(2)); +CREATE TABLE +MogDB=#insert into tab_char values (1,'1'); +INSERT 0 1 +MogDB=#select id,concat('"',col_char,'"') ,col_char from tab_char; + id | concat | col_char +----+--------+---------- + 1 | "1 " | 1 >> 多了个空格 +(1 row) +``` + ### 序列 如果当前值大于9223372036854775807,提示错误。其余打印日志。 -- Gitee