View Issue Details

IDProjectCategoryView StatusLast Update
0004812SymmetricDSImprovementpublic2021-02-05 07:11
Reporterkraynopp Assigned To 
Status newResolutionopen 
Product Version3.12.6 
Summary0004812: NULL and empty string should be considered as equal for Oracle
DescriptionOracle consider empty string as null. It is impossible to insert empty string into varchar2 field, it will be replaced by null. See here:

"Oracle Database treats a character value with a length of zero as null"

But other rdbms can insert empty string in text filelds. It can leads to mistakes during conflict resolution.
Steps To ReproduceSource database is posgres, destination - oracle. Conflict resolution is configured. From oracle to postgres - FALLBACK. From postgres to oracle - IGNORE.

1. Record updates in postgres. New value of text field is empty string now. SymmetricDS in oracle accept this value, but rdbms converts it to NULL.
2. The same record updates or deletes in postgres. SymmetricDS in oracle compares old value of text field from postgres (empty string) and value of varchar2 field (null). Empty string is not equal to null, conflict detected, update or delete is rejected. Table becomes out of sync.
Tagsdialect: oracle


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2021-02-05 07:11 kraynopp New Issue
2021-02-05 07:11 kraynopp Tag Attached: dialect: oracle