View Revisions: Issue #6812

Summary 0006812: incorrect mapping from of NUMBER in Oracle to decimal(10,0) in MySQL
Revision 2025-04-09 17:10 by pbelov
Description When sending tables from an Oracle database to a MySQL/Mariadb database.
When a reload node from oracle to mariadb , symmetricds crash during the trasmission of data of this table

CREATE TABLE T_CX02"
( "TCX02_TIPORIC" CHAR(4) NOT NULL ENABLE,
"TCX02_RIC" CHAR(2) NOT NULL ENABLE,
"TCX02_PRIOR" NUMBER NOT NULL ENABLE,
"TCX02_CMPLIST" NUMBER(2,0),
"TCX02_CMPRIG" NUMBER(2,0),
"TCX02_FCONF" CHAR(1) NOT NULL ENABLE,
"TCX02_FLAV" CHAR(1) NOT NULL ENABLE,
"TCX02_OPZIONI" CHAR(10)

Symmetricds created on the fly this table on mariadb

CREATE TABLE t_cx02 (
tcx02_tiporic char(4) NOT NULL,
tcx02_ric char(2) NOT NULL,
tcx02_prior decimal(10,0) NOT NULL,
tcx02_cmplist decimal(2,0) DEFAULT NULL,
tcx02_cmprig decimal(2,0) DEFAULT NULL,
tcx02_fconf char(1) NOT NULL,
tcx02_flav char(1) NOT NULL,
tcx02_opzioni char(10) DEFAULT NULL,
PRIMARY KEY (tcx02_tiporic,tcx02_ric,tcx02_prior)
)

but the column tcx02_prior is created on with 0 decimal
so one row triggers a constrain error on primary key because the decimals are truncated

I think there is an incorrect mapping from of NUMBER oracle type to decimal(10,0) .
Revision 2025-04-09 17:14 by pbelov
Description When sending tables from an Oracle database to a MySQL/Mariadb database during a reload, SymmetricDS crashes.

The column TCX02_PRIOR is defined as NUMBER on Oracle.
The column TCX02_PRIOR is created as decimal(10,0) on MySQL - incorrectly.
Revision 2025-04-09 17:10 by pbelov
Steps To Reproduce
Revision 2025-04-09 17:14 by pbelov
Steps To Reproduce
CREATE TABLE T_CX02"
( "TCX02_TIPORIC" CHAR(4) NOT NULL ENABLE,
"TCX02_RIC" CHAR(2) NOT NULL ENABLE,
"TCX02_PRIOR" NUMBER NOT NULL ENABLE,
"TCX02_CMPLIST" NUMBER(2,0),
"TCX02_CMPRIG" NUMBER(2,0),
"TCX02_FCONF" CHAR(1) NOT NULL ENABLE,
"TCX02_FLAV" CHAR(1) NOT NULL ENABLE,
"TCX02_OPZIONI" CHAR(10)


Symmetricds created on the fly this table on mariadb

CREATE TABLE t_cx02 (
tcx02_tiporic char(4) NOT NULL,
tcx02_ric char(2) NOT NULL,
tcx02_prior decimal(10,0) NOT NULL,
tcx02_cmplist decimal(2,0) DEFAULT NULL,
tcx02_cmprig decimal(2,0) DEFAULT NULL,
tcx02_fconf char(1) NOT NULL,
tcx02_flav char(1) NOT NULL,
tcx02_opzioni char(10) DEFAULT NULL,
PRIMARY KEY (tcx02_tiporic,tcx02_ric,tcx02_prior)
)