统一SQL-number/decimal/dec/numeric转换

统一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位的数据,在目标库执行将报错,此种情况下请谨慎使用。

相关推荐
apcipot_rain4 分钟前
【应用密码学】实验五 公钥密码2——ECC
前端·数据库·python
辛一一3 小时前
neo4j图数据库基本概念和向量使用
数据库·neo4j
LJianK13 小时前
关系型数据库和非关系型数据库
sql
巨龙之路4 小时前
什么是时序数据库?
数据库·时序数据库
蔡蓝4 小时前
binlog日志以及MySQL的数据同步
数据库·mysql
是店小二呀5 小时前
【金仓数据库征文】金融行业中的国产化数据库替代应用实践
数据库·金融·数据库平替用金仓·金仓数据库2025征文
炒空心菜菜5 小时前
SparkSQL 连接 MySQL 并添加新数据:实战指南
大数据·开发语言·数据库·后端·mysql·spark
多多*5 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
爱喝酸奶的桃酥5 小时前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql
数据库幼崽6 小时前
MySQL 8.0 OCP 1Z0-908 61-70题
数据库·mysql·ocp