fix(数据源): 同步 oracle 数据出错

This commit is contained in:
taojinlong 2022-07-14 17:43:47 +08:00
parent fc0757613b
commit 7ae1ce6c02

View File

@ -1196,7 +1196,8 @@ public class ExtractDataService {
targetCharset = jdbcConfiguration.getTargetCharset();
}
if (StringUtils.isNotEmpty(charset)) {
tmp_code = tmp_code.replace("handleCharset", handleCharset.replace("Datasource_Charset", charset).replace("Target_Charset", targetCharset));
String varcharFields = datasetTableFields.stream().filter(datasetTableField -> datasetTableField.getDeExtractType() == 0).map(DatasetTableField::getOriginName).collect(Collectors.joining(","));
tmp_code = tmp_code.replace("handleCharset", handleCharset.replace("Datasource_Charset", charset).replace("Target_Charset", targetCharset).replace("varcharFields", varcharFields));
}else {
tmp_code = tmp_code.replace("handleCharset", "");
}
@ -1313,7 +1314,7 @@ public class ExtractDataService {
" get(Fields.Out, filed).setValue(r, tmp);\n" +
" } \n";
private final static String handleCharset = "\tif(tmp != null){\n" +
private final static String handleCharset = "\tif(tmp != null && Arrays.asList(\"varcharFields\".split(\",\")).contains(filed)){\n" +
" \t\t\ttry {\n" +
"\t\t\t\tget(Fields.Out, filed).setValue(r, new String(tmp.getBytes(\"Datasource_Charset\"), \"Target_Charset\"));\n" +
" \t\t}catch (Exception e){}\n" +