统一SQL介绍
https://www.light-pg.com/docs/LTSQL/current/index.html
源和目标
源数据库:Oracle
目标数据库:Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle
操作目标
通过统一SQL,将Oracle中的number/decimal/dec/numeric转换到目标库适配的数据类型。
统一SQL转换
Oracle2Posgresql
number类型
|-------------------------|-------|--------|---------------------|--------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| number | | | decimal | number ----- decimal |
| number(*) | | | decimal | number(*) ----- decimal |
| number(*,0) | | | decimal(38,0) | number(*,0)----decimal(38,0) |
| number(*,s) | | s > 0 | decimal(38,s) | number(*,2)----decimal(38,2) |
| number(p) / number(p,0) | p>0 | 空 或 0 | decimal(p) | number(4,0)-----decimal(4) |
| number(p,s) | p>0 | s>0 | decimal(p,s) | number(10,2)-----decimal(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_number_t(c1 NUMBER,c2 NUMBER(*),c3 NUMBER(*,0),c4 NUMBER(*,2),c5 NUMBER(4),c6 NUMBER(4,0),c7 NUMBER(10,2));
-- 转换后PostgreSQL SQL:
CREATE TABLE unisql_number_t (c1 decimal,c2 decimal,c3 decimal(38,0),c4 decimal(38,2),c5 decimal(4),c6 decimal(4),c7 decimal(10,2))
decimal类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| decimal | | | decimal(38,0) | decimal ----- decimal(38,0) |
| decimal(*) | | | decimal(38,0) | decimal(*) ----- decimal(38,0) |
| decimal(*,0) | | | decimal(38,0) | decimal(*,0)----decimal(38,0) |
| decimal(*,s) | | s > 0 | decimal(38,s) | decimal(*,2)----decimal(38,2) |
| decimal(p) / decimal(p,0) | p>0 | 空 或 0 | decimal(p) | decimal(4,0)-----decimal(4) |
| decimal(p,s) | p>0 | s>0 | decimal(p,s) | decimal(10,2)-----decimal(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_decimal_t(c1 decimal,c2 decimal(*),c3 decimal(*,0),c4 decimal(*,2),c5 decimal(4),c6 decimal(4,0),c7 decimal(10,2));
-- 转换后PostgreSQL SQL:
CREATE TABLE unisql_decimal_t (c1 decimal(38,0),c2 decimal(38,0),c3 decimal(38,0),c4 decimal(38,2),c5 decimal(4),c6 decimal(4),c7 decimal(10,2))
dec类型
|-------------------|-------|--------|---------------------|-------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| dec | | | dec(38,0) | dec----- dec(38,0) |
| dec(*) | | | dec(38,0) | dec(*) ----- dec(38,0) |
| dec(*,0) | | | dec(38,0) | dec(*,0)----dec(38,0) |
| dec(*,s) | | s > 0 | dec(38,s) | dec(*,2)----dec(38,2) |
| dec(p) / dec(p,0) | p>0 | 空 或 0 | dec(p) | dec(4,0)-----dec(4) |
| dec(p,s) | p>0 | s>0 | dec(p,s) | dec(10,2)-----dec(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_dec_t(c1 dec,c2 dec(*),c3 dec(*,0),c4 dec(*,2),c5 dec(4),c6 dec(4,0),c7 dec(10,2));
-- 转换后PostgreSQL SQL:
CREATE TABLE unisql_dec_t (c1 dec(38,0),c2 dec(38,0),c3 dec(38,0),c4 dec(38,2),c5 dec(4),c6 dec(4),c7 dec(10,2))
numeric类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| numeric | | | numeric(38,0) | numeric----- numeric(38,0) |
| numeric(*) | | | numeric(38,0) | numeric(*) ----- numeric(38,0) |
| numeric(*,0) | | | numeric(38,0) | numeric(*,0)----numeric(38,0) |
| numeric(*,s) | | s > 0 | numeric(38,s) | numeric(*,2)----numeric(38,2) |
| numeric(p) / numeric(p,0) | p>0 | 空 或 0 | numeric(p) | numeric(4,0)-----numeric(4) |
| numeric(p,s) | p>0 | s>0 | numeric(p,s) | numeric(10,2)-----numeric(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_numeric_t(c1 numeric,c2 numeric(*),c3 numeric(*,0),c4 numeric(*,2),c5 numeric(4),c6 numeric(4,0),c7 numeric(10,2));
-- 转换后PostgreSQL SQL:
CREATE TABLE unisql_numeric_t (c1 numeric(38,0),c2 numeric(38,0),c3 numeric(38,0),c4 numeric(38,2),c5 numeric(4),c6 numeric(4),c7 numeric(10,2))
备注:
在Oracle中,对于数据类型NUMBER,DECIMAL,DEC,NUMERIC的精度标度范围:
-
精度范围(p):1~38
-
标度范围(s):-84~127
统一SQL转换时支持的精度标度范围如下(且p>=s):
-
精度范围(p):1~38
-
标度范围(s):0~38
-
在使用上述数据类型时,请确保数据类型精度标度范围在支持范围内。
-
对于目标库数据类型无法处理的数据长度,在运行时会报错。
-
在处理数字类型数据时,源库和目标库会存在截取或四舍五入的情况,可能会导致精度的损失(参考备注示例内容)
-
对于decimal/dec/numeric,decimal/dec/numeric(*),number/decimal/dec/numeric(,0),number/decimal/dec/numeric(,s)转换到目标库后默认精度(p=38),对于超过38位的数据,在目标库执行将报错,此种情况下请谨慎使用。
Oracle2TDSQL-MySQL
number类型
|-------------------------|-------|--------|---------------------|--------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| number | | | decimal | number ----- decimal |
| number(*) | | | decimal | number(*) ----- decimal |
| number(*,0) | | | decimal(38,0) | number(*,0)----decimal(38,0) |
| number(*,s) | | s > 0 | decimal(38,s) | number(*,2)----decimal(38,2) |
| number(p) / number(p,0) | p>0 | 空 或 0 | decimal(p) | number(4,0)-----decimal(4) |
| number(p,s) | p>0 | s>0 | decimal(p,s) | number(10,2)-----decimal(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_number_t(c1 NUMBER,c2 NUMBER(*),c3 NUMBER(*,0),c4 NUMBER(*,2),c5 NUMBER(4),c6 NUMBER(4,0),c7 NUMBER(10,2));
-- 转换后TDSQL-MySQL:
CREATE TABLE unisql_number_t (c1 decimal,c2 decimal,c3 decimal(38,0),c4 decimal(38,2),c5 decimal(4),c6 decimal(4),c7 decimal(10,2))
decimal类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| decimal | | | decimal(38,0) | decimal ----- decimal(38,0) |
| decimal(*) | | | decimal(38,0) | decimal(*) ----- decimal(38,0) |
| decimal(*,0) | | | decimal(38,0) | decimal(*,0)----decimal(38,0) |
| decimal(*,s) | | s > 0 | decimal(38,s) | decimal(*,2)----decimal(38,2) |
| decimal(p) / decimal(p,0) | p>0 | 空 或 0 | decimal(p) | decimal(4,0)-----decimal(4) |
| decimal(p,s) | p>0 | s>0 | decimal(p,s) | decimal(10,2)-----decimal(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_decimal_t(c1 decimal,c2 decimal(*),c3 decimal(*,0),c4 decimal(*,2),c5 decimal(4),c6 decimal(4,0),c7 decimal(10,2));
-- 转换后TDSQL-MySQL:
CREATE TABLE unisql_decimal_t (c1 decimal(38,0),c2 decimal(38,0),c3 decimal(38,0),c4 decimal(38,2),c5 decimal(4),c6 decimal(4),c7 decimal(10,2))
dec类型
|-------------------|-------|--------|---------------------|-------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| dec | | | dec(38,0) | dec----- dec(38,0) |
| dec(*) | | | dec(38,0) | dec(*) ----- dec(38,0) |
| dec(*,0) | | | dec(38,0) | dec(*,0)----dec(38,0) |
| dec(*,s) | | s > 0 | dec(38,s) | dec(*,2)----dec(38,2) |
| dec(p) / dec(p,0) | p>0 | 空 或 0 | dec(p) | dec(4,0)-----dec(4) |
| dec(p,s) | p>0 | s>0 | dec(p,s) | dec(10,2)-----dec(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_dec_t(c1 dec,c2 dec(*),c3 dec(*,0),c4 dec(*,2),c5 dec(4),c6 dec(4,0),c7 dec(10,2));
-- 转换后TDSQL-MySQL:
CREATE TABLE unisql_dec_t (c1 dec(38,0),c2 dec(38,0),c3 dec(38,0),c4 dec(38,2),c5 dec(4),c6 dec(4),c7 dec(10,2))
numeric类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| numeric | | | numeric(38,0) | numeric----- numeric(38,0) |
| numeric(*) | | | numeric(38,0) | numeric(*) ----- numeric(38,0) |
| numeric(*,0) | | | numeric(38,0) | numeric(*,0)----numeric(38,0) |
| numeric(*,s) | | s > 0 | numeric(38,s) | numeric(*,2)----numeric(38,2) |
| numeric(p) / numeric(p,0) | p>0 | 空 或 0 | numeric(p) | numeric(4,0)-----numeric(4) |
| numeric(p,s) | p>0 | s>0 | numeric(p,s) | numeric(10,2)-----numeric(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_numeric_t(c1 numeric,c2 numeric(*),c3 numeric(*,0),c4 numeric(*,2),c5 numeric(4),c6 numeric(4,0),c7 numeric(10,2));
-- 转换后TDSQL-MySQL:
CREATE TABLE unisql_numeric_t (c1 numeric(38,0),c2 numeric(38,0),c3 numeric(38,0),c4 numeric(38,2),c5 numeric(4),c6 numeric(4),c7 numeric(10,2))
备注:
在Oracle中,对于数据类型NUMBER,DECIMAL,DEC,NUMERIC的精度标度范围:
-
精度范围(p):1~38
-
标度范围(s):-84~127
统一SQL转换时支持的精度标度范围如下(且p>=s):
-
精度范围(p):1~38
-
标度范围(s):0~38
-
在使用上述数据类型时,请确保数据类型精度标度范围在支持范围内。
-
对于目标库数据类型无法处理的数据长度,在运行时会报错。
-
在处理数字类型数据时,源库和目标库会存在截取或四舍五入的情况,可能会导致精度的损失(参考备注示例内容)。
-
在TDSQL-MySQL中decimal默认可以处理的整数位为10位,对转换后是decimal且整数位超过10位时,在运行时会报错。推荐使用时根据需要指定精度和标度。
-
对于decimal/dec/numeric,decimal/dec/numeric(*),number/decimal/dec/numeric(,0),number/decimal/dec/numeric(,s)转换到目标库后默认精度(p=38),对于超过38位的数据,在目标库执行将报错,此种情况下请谨慎使用。
Oracle2TDSQL-LightDB-Oracle
number类型
|-------------------------|-------|--------|---------------------|-------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| number | | | decimal | number ----- number |
| number(*) | | | decimal | number(*) ----- number |
| number(*,0) | | | decimal(38,0) | number(*,0)----number(38,0) |
| number(*,s) | | s > 0 | decimal(38,s) | number(*,2)----number(38,2) |
| number(p) / number(p,0) | p>0 | 空 或 0 | decimal(p) | number(4,0)-----number(4) |
| number(p,s) | p>0 | s>0 | decimal(p,s) | number(10,2)-----number(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_number_t(c1 NUMBER,c2 NUMBER(*),c3 NUMBER(*,0),c4 NUMBER(*,2),c5 NUMBER(4),c6 NUMBER(4,0),c7 NUMBER(10,2));
-- 转换后LightDB-Oracle SQL:
CREATE TABLE unisql_number_t (c1 number,c2 number,c3 number(38,0),c4 number(38,2),c5 number(4),c6 number(4),c7 number(10,2))
decimal类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| decimal | | | decimal(38,0) | decimal ----- decimal(38,0) |
| decimal(*) | | | decimal(38,0) | decimal(*) ----- decimal(38,0) |
| decimal(*,0) | | | decimal(38,0) | decimal(*,0)----decimal(38,0) |
| decimal(*,s) | | s > 0 | decimal(38,s) | decimal(*,2)----decimal(38,2) |
| decimal(p) / decimal(p,0) | p>0 | 空 或 0 | decimal(p) | decimal(4,0)-----decimal(4) |
| decimal(p,s) | p>0 | s>0 | decimal(p,s) | decimal(10,2)-----decimal(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_decimal_t(c1 decimal,c2 decimal(*),c3 decimal(*,0),c4 decimal(*,2),c5 decimal(4),c6 decimal(4,0),c7 decimal(10,2));
-- 转换后LightDB-Oracle SQL:
CREATE TABLE unisql_decimal_t (c1 decimal(38,0),c2 decimal(38,0),c3 decimal(38,0),c4 decimal(38,2),c5 decimal(4),c6 decimal(4),c7 decimal(10,2))
dec类型
|-------------------|-------|--------|---------------------|-------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| dec | | | dec(38,0) | dec----- dec(38,0) |
| dec(*) | | | dec(38,0) | dec(*) ----- dec(38,0) |
| dec(*,0) | | | dec(38,0) | dec(*,0)----dec(38,0) |
| dec(*,s) | | s > 0 | dec(38,s) | dec(*,2)----dec(38,2) |
| dec(p) / dec(p,0) | p>0 | 空 或 0 | dec(p) | dec(4,0)-----dec(4) |
| dec(p,s) | p>0 | s>0 | dec(p,s) | dec(10,2)-----dec(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_dec_t(c1 dec,c2 dec(*),c3 dec(*,0),c4 dec(*,2),c5 dec(4),c6 dec(4,0),c7 dec(10,2));
-- 转换后LightDB-Oracle SQL:
CREATE TABLE unisql_dec_t (c1 dec(38,0),c2 dec(38,0),c3 dec(38,0),c4 dec(38,2),c5 dec(4),c6 dec(4),c7 dec(10,2))
numeric类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| numeric | | | numeric(38,0) | numeric----- numeric(38,0) |
| numeric(*) | | | numeric(38,0) | numeric(*) ----- numeric(38,0) |
| numeric(*,0) | | | numeric(38,0) | numeric(*,0)----numeric(38,0) |
| numeric(*,s) | | s > 0 | numeric(38,s) | numeric(*,2)----numeric(38,2) |
| numeric(p) / numeric(p,0) | p>0 | 空 或 0 | numeric(p) | numeric(4,0)-----numeric(4) |
| numeric(p,s) | p>0 | s>0 | numeric(p,s) | numeric(10,2)-----numeric(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_numeric_t(c1 numeric,c2 numeric(*),c3 numeric(*,0),c4 numeric(*,2),c5 numeric(4),c6 numeric(4,0),c7 numeric(10,2));
-- 转换后LightDB-Oracle SQL:
CREATE TABLE unisql_numeric_t (c1 numeric(38,0),c2 numeric(38,0),c3 numeric(38,0),c4 numeric(38,2),c5 numeric(4),c6 numeric(4),c7 numeric(10,2))
备注:
在Oracle中,对于数据类型NUMBER,DECIMAL,DEC,NUMERIC的精度标度范围:
-
精度范围(p):1~38
-
标度范围(s):-84~127
统一SQL转换时支持的精度标度范围如下(且p>=s):
-
精度范围(p):1~38
-
标度范围(s):0~38
-
在使用上述数据类型时,请确保数据类型精度标度范围在支持范围内。
-
对于目标库数据类型无法处理的数据长度,在运行时会报错。
-
在处理数字类型数据时,源库和目标库会存在截取或四舍五入的情况,可能会导致精度的损失(参考备注示例内容)
-
对于decimal/dec/numeric,decimal/dec/numeric(*),number/decimal/dec/numeric(,0),number/decimal/dec/numeric(,s)转换到目标库后默认精度(p=38),对于超过38位的数据,在目标库执行将报错,此种情况下请谨慎使用。
Oracle2TDSQL-达梦8
number类型
|-------------------------|-------|--------|---------------------|-------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| number | | | decimal | number ----- number |
| number(*) | | | decimal | number(*) ----- number |
| number(*,0) | | | decimal(38,0) | number(*,0)----number(38,0) |
| number(*,s) | | s > 0 | decimal(38,s) | number(*,2)----number(38,2) |
| number(p) / number(p,0) | p>0 | 空 或 0 | decimal(p) | number(4,0)-----number(4) |
| number(p,s) | p>0 | s>0 | decimal(p,s) | number(10,2)-----number(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_number_t(c1 NUMBER,c2 NUMBER(*),c3 NUMBER(*,0),c4 NUMBER(*,2),c5 NUMBER(4),c6 NUMBER(4,0),c7 NUMBER(10,2));
-- 转换后达梦 SQL:
CREATE TABLE unisql_number_t (c1 number,c2 number,c3 number(38,0),c4 number(38,2),c5 number(4),c6 number(4),c7 number(10,2))
decimal类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| decimal | | | decimal(38,0) | decimal ----- decimal(38,0) |
| decimal(*) | | | decimal(38,0) | decimal(*) ----- decimal(38,0) |
| decimal(*,0) | | | decimal(38,0) | decimal(*,0)----decimal(38,0) |
| decimal(*,s) | | s > 0 | decimal(38,s) | decimal(*,2)----decimal(38,2) |
| decimal(p) / decimal(p,0) | p>0 | 空 或 0 | decimal(p) | decimal(4,0)-----decimal(4) |
| decimal(p,s) | p>0 | s>0 | decimal(p,s) | decimal(10,2)-----decimal(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_decimal_t(c1 decimal,c2 decimal(*),c3 decimal(*,0),c4 decimal(*,2),c5 decimal(4),c6 decimal(4,0),c7 decimal(10,2));
-- 转换后达梦 SQL:
CREATE TABLE unisql_decimal_t (c1 decimal(38,0),c2 decimal(38,0),c3 decimal(38,0),c4 decimal(38,2),c5 decimal(4),c6 decimal(4),c7 decimal(10,2))
dec类型
|-------------------|-------|--------|---------------------|-------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| dec | | | dec(38,0) | dec----- dec(38,0) |
| dec(*) | | | dec(38,0) | dec(*) ----- dec(38,0) |
| dec(*,0) | | | dec(38,0) | dec(*,0)----dec(38,0) |
| dec(*,s) | | s > 0 | dec(38,s) | dec(*,2)----dec(38,2) |
| dec(p) / dec(p,0) | p>0 | 空 或 0 | dec(p) | dec(4,0)-----dec(4) |
| dec(p,s) | p>0 | s>0 | dec(p,s) | dec(10,2)-----dec(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_dec_t(c1 dec,c2 dec(*),c3 dec(*,0),c4 dec(*,2),c5 dec(4),c6 dec(4,0),c7 dec(10,2));
-- 转换后达梦 SQL:
CREATE TABLE unisql_dec_t (c1 dec(38,0),c2 dec(38,0),c3 dec(38,0),c4 dec(38,2),c5 dec(4),c6 dec(4),c7 dec(10,2))
numeric类型
|---------------------------|-------|--------|---------------------|---------------------------------|
| Oracle 数据类型 | 精度(p) | 标度(s) | 转换后 PostgreSQL 数据类型 | 示例 |
| numeric | | | numeric(38,0) | numeric----- numeric(38,0) |
| numeric(*) | | | numeric(38,0) | numeric(*) ----- numeric(38,0) |
| numeric(*,0) | | | numeric(38,0) | numeric(*,0)----numeric(38,0) |
| numeric(*,s) | | s > 0 | numeric(38,s) | numeric(*,2)----numeric(38,2) |
| numeric(p) / numeric(p,0) | p>0 | 空 或 0 | numeric(p) | numeric(4,0)-----numeric(4) |
| numeric(p,s) | p>0 | s>0 | numeric(p,s) | numeric(10,2)-----numeric(10,2) |
使用案例:
-- 转换前Oracle SQL:
CREATE TABLE unisql_numeric_t(c1 numeric,c2 numeric(*),c3 numeric(*,0),c4 numeric(*,2),c5 numeric(4),c6 numeric(4,0),c7 numeric(10,2));
-- 转换后达梦 SQL:
CREATE TABLE unisql_numeric_t (c1 numeric(38,0),c2 numeric(38,0),c3 numeric(38,0),c4 numeric(38,2),c5 numeric(4),c6 numeric(4),c7 numeric(10,2))
备注:
在Oracle中,对于数据类型NUMBER,DECIMAL,DEC,NUMERIC的精度标度范围:
-
精度范围(p):1~38
-
标度范围(s):-84~127
统一SQL转换时支持的精度标度范围如下(且p>=s):
-
精度范围(p):1~38
-
标度范围(s):0~38
-
在使用上述数据类型时,请确保数据类型精度标度范围在支持范围内。
-
对于目标库数据类型无法处理的数据长度,在运行时会报错。
-
在处理数字类型数据时,源库和目标库会存在截取或四舍五入的情况,可能会导致精度的损失(参考备注示例内容)
-
对于decimal/dec/numeric,decimal/dec/numeric(*),number/decimal/dec/numeric(,0),number/decimal/dec/numeric(,s)转换到目标库后默认精度(p=38),对于超过38位的数据,在目标库执行将报错,此种情况下请谨慎使用。