From 1a7d07ca04a71f69ef9e1050039eb2a692a22bf1 Mon Sep 17 00:00:00 2001 From: elong Date: Wed, 5 Sep 2018 19:25:53 -0400 Subject: [PATCH] 0003709: Support row-by-row stream lob for DB2 --- .../org/jumpmind/symmetric/db/db2/Db2TriggerTemplate.java | 4 ++-- .../jumpmind/symmetric/service/impl/DataExtractorService.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2TriggerTemplate.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2TriggerTemplate.java index 27cc752546..c540e9ffde 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2TriggerTemplate.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/db2/Db2TriggerTemplate.java @@ -38,8 +38,8 @@ public Db2TriggerTemplate(ISymmetricDialect symmetricDialect) { datetimeColumnTemplate = "case when $(tableAlias).\"$(columnName)\" is null then '' else '\"' || rtrim(char(year(timestamp_iso($(tableAlias).\"$(columnName)\"))))||'-'||substr(digits(month(timestamp_iso($(tableAlias).\"$(columnName)\"))),9)||'-'||substr(digits(day(timestamp_iso($(tableAlias).\"$(columnName)\"))),9)||' '||substr(digits(hour(timestamp_iso($(tableAlias).\"$(columnName)\"))),9)||':'||substr(digits(minute(timestamp_iso($(tableAlias).\"$(columnName)\"))),9)||':'||substr(digits(second(timestamp_iso($(tableAlias).\"$(columnName)\"))),9)||'.'||RIGHT(REPEAT('0',6)||rtrim(char(microsecond(timestamp_iso($(tableAlias).\"$(columnName)\")))),6) || '\"' end" ; timeColumnTemplate = null; dateColumnTemplate = null; - clobColumnTemplate = "case when $(tableAlias).\"$(columnName)\" is null then '' else '\"' || replace(replace(cast($(tableAlias).\"$(columnName)\" as varchar(32672)),'\\','\\\\'),'\"','\\\"') || '\"' end" ; - blobColumnTemplate = "case when $(tableAlias).\"$(columnName)\" is null then '' else '\"' || hex(cast($(tableAlias).\"$(columnName)\" as varchar(16336) for bit data)) || '\"' end" ; + clobColumnTemplate = "case when $(tableAlias).\"$(columnName)\" is null then '' when length($(tableAlias).\"$(columnName)\") > 32672 then '\b' else '\"' || replace(replace(cast($(tableAlias).\"$(columnName)\" as varchar(32672)),'\\','\\\\'),'\"','\\\"') || '\"' end" ; + blobColumnTemplate = "case when $(tableAlias).\"$(columnName)\" is null then '' when length($(tableAlias).\"$(columnName)\") > 16336 then hex('\b') else '\"' || hex(cast($(tableAlias).\"$(columnName)\" as varchar(16336) for bit data)) || '\"' end" ; wrappedBlobColumnTemplate = null; booleanColumnTemplate = null; triggerConcatCharacter = "||" ; diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java index 88550f448a..697fec68b9 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java @@ -2029,7 +2029,7 @@ protected boolean hasLobsThatNeedExtract(Table table, CsvData data) { List lobColumns = table.getLobColumns(platform); for (Column c : lobColumns) { String value = colMap.get(c.getName()); - if (value != null && value.equals("\b")) { + if (value != null && (value.equals("\b") || value.equals("08"))) { return true; } }