View Issue Details

IDProjectCategoryView StatusLast Update
0002358SymmetricDSBugpublic2022-08-05 20:03
Reporterdavemelo Assigned Toelong  
Priorityhigh 
Status closedResolutionfixed 
Product Version3.7.0 
Target Version3.12.2Fixed in Version3.12.2 
Summary0002358: Sending required CLOB between H2 and ORACLE throws ""inconsistent datatypes: expected - got CLOB""
DescriptionI have an H2 database client, that are forwarding batches to Oracle Database. When I send sym_data with CLOB column that is REQUIRED and the operation is UPDATE, when Oracle receives the batch and try to submit changes to database, i have this error:

SQL: ORA-00932 "inconsistent datatypes: expected - got CLOB"

In sym_trigger configuration i have both use_stream_lobs and use_capture_lobs to 1 from the table that has the CLOB column.

The problem is in the class AbstractDatabasePlatform.java. Oracle in that case use the variable definition REQUIRED_FIELD_NULL_SUBSTITUTE that is ' ', but in the WHERE clause created for UPDATE sentence, Oracle throws that error.

update "TABLE"
set "COLUMN_CLOB"='change_value'
where "COLUMN_PK" ='pk_value'
and "COLUMN_CLOB" = ' ';


Tagsconflict manager, large objects

Relationships

related to 0002362 closedelong Sending CLOB with USE_OLD_DATA as conflict in ORACLE throws ""inconsistent datatypes: expected - got CLOB"" 
related to 0004464 closedelong Failed to load batch ORA-00932: inconsistent datatypes: expected - got CLOB 

Activities

davemelo

2015-08-04 07:39

reporter   ~0000705

This is resolved in the last version. I was using 3.3.5 version of Symmetrics and when I use USE_OLD_DATA as a conflict Detection, in ORACLE it was comparing CLOBS in WHERE clause, and it couldnt be in ORACLE.

This is the code that resolves the problem in src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriter.java

       while (it.hasNext()) {
                        Column col = it.next();
                        if ((platform.isLob(col.getMappedTypeCode()) && data.isNoBinaryOldData())
                                || !platform.canColumnBeUsedInWhereClause(col)) {
                            it.remove();
                        }
                    }

This issue should be closed.

Thanks

davemelo

2015-08-05 07:01

reporter   ~0000706

THIS ISSUE IS NOT RESOLVED, see new issue in:

http://www.symmetricds.org/issues/view.php?id=2362

Issue History

Date Modified Username Field Change
2015-08-03 10:31 davemelo New Issue
2015-08-04 07:39 davemelo Note Added: 0000705
2015-08-05 07:01 davemelo Note Added: 0000706
2019-04-23 19:16 elong Relationship added related to 0002362
2019-04-23 19:17 elong Tag Attached: large objects
2019-04-23 19:17 elong Tag Attached: conflict manager
2022-08-05 20:00 elong Relationship added related to 0004464
2022-08-05 20:03 elong Assigned To => elong
2022-08-05 20:03 elong Status new => closed
2022-08-05 20:03 elong Resolution open => fixed
2022-08-05 20:03 elong Product Version => 3.7.0
2022-08-05 20:03 elong Fixed in Version => 3.12.18
2022-08-05 20:03 elong Target Version => 3.12.18