View Issue Details

IDProjectCategoryView StatusLast Update
0005088SymmetricDSBugpublic2021-11-04 14:58
Reporterelong Assigned Toelong  
Prioritynormal 
Status closedResolutionfixed 
Product Version3.0.0 
Target Version3.12.12Fixed in Version3.12.12 
Summary0005088: Duplicate column name error
DescriptionIf the same column name is used on the same table -- but with different cases -- the batch will fail with a duplicate column name error. The source table is used to send column names in the batch. Then the target table is used to find matching columns, but it uses a case insensitive match and uses the first column it finds.

2021-09-21 16:57:30,120 ERROR [client-1] [ManageIncomingBatchListener] [client-1-dataloader-14] Failed to load batch server-12 org.jumpmind.db.sql.SqlException: ORA-00957: duplicate column name
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:313)
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:302)
    at org.jumpmind.db.sql.JdbcSqlTransaction.addRow(JdbcSqlTransaction.java:466)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriter.execute(DefaultDatabaseWriter.java:1075)
    at org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriter.insert(DefaultDatabaseWriter.java:258)
    at org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter.write(AbstractDatabaseWriter.java:196)
    at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64)
    at org.jumpmind.symmetric.model.ProcessInfoDataWriter.write(ProcessInfoDataWriter.java:85)
    at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64)
    at org.jumpmind.symmetric.io.data.writer.TransformWriter.write(TransformWriter.java:203)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable(DataProcessor.java:212)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch(DataProcessor.java:178)
    at org.jumpmind.symmetric.io.data.DataProcessor.process(DataProcessor.java:124)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1091)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00957: duplicate column name
    at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
    at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:253)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:86)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:928)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3640)
    at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1384)
    at oracle.jdbc.driver.OraclePreparedStatement.executeLargeUpdate(OraclePreparedStatement.java:3730)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3710)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1061)
    at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136)
    at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136)
    at org.jumpmind.db.sql.JdbcSqlTransaction.executePreparedUpdate(JdbcSqlTransaction.java:485)
    at org.jumpmind.db.sql.JdbcSqlTransaction.addRow(JdbcSqlTransaction.java:463)
    ... 16 more
Caused by: Error : 957, Position : 37, Sql = insert into "HANES"."MODULES" ("ID", "MYDUPLICATE", "NAME", "MYDUPLICATE", "CREATE_TIME") values (:1 ,:2 ,:3 ,:4 ,:5 ), OriginalSql = insert into "HANES"."MODULES" ("ID", "MYDUPLICATE", "NAME", "MYDUPLICATE", "CREATE_TIME") values (?,?,?,?,?), Error Msg = ORA-00957: duplicate column name
    at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
    ... 34 more
Steps To Reproducecreate table "MODULES"
("ID" integer primary key, "MYDUPLICATE" varchar(10), "NAME" varchar(10), "myDuplicate" varchar(10), "CREATE_TIME" timestamp)
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.12 ac2e2187

2021-10-11 17:17:36

admin

Details Diff
0005088: Duplicate column name error Affected Issues
0005088
mod - symmetric-db/src/main/java/org/jumpmind/db/model/Table.java Diff File

Issue History

Date Modified Username Field Change
2021-09-21 22:18 elong New Issue
2021-09-21 22:18 elong Status new => assigned
2021-09-21 22:18 elong Assigned To => elong
2021-10-11 17:18 elong Status assigned => resolved
2021-10-11 17:18 elong Resolution open => fixed
2021-10-11 17:18 elong Fixed in Version => 3.12.12
2021-10-11 18:00 admin Changeset attached => SymmetricDS 3.12 ac2e2187
2021-11-04 14:58 admin Status resolved => closed