Skip to content

Commit a5c3e05

Browse files
author
gituser
committed
Merge branch '1.10_release_4.1.x' into 1.10_release_4.2.x
2 parents af49180 + a5be9d5 commit a5c3e05

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

core/src/main/java/com/dtstack/flink/sql/format/dtnest/DtNestRowDeserializationSchema.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636

3737
import java.io.IOException;
3838
import java.lang.reflect.Array;
39+
import java.sql.Clob;
3940
import java.sql.Date;
41+
import java.sql.NClob;
4042
import java.sql.Time;
4143
import java.sql.Timestamp;
4244
import java.util.Iterator;
@@ -148,6 +150,10 @@ private Object convert(JsonNode node, TypeInformation<?> info) {
148150
} else {
149151
return node.asText();
150152
}
153+
} else if (info.getTypeClass().equals(Clob.class)) {
154+
return node.asText();
155+
} else if (info.getTypeClass().equals(NClob.class)) {
156+
return node.asText();
151157
} else if (info.getTypeClass().equals(Types.SQL_DATE.getTypeClass())) {
152158
return convertToDate(node.asText());
153159
} else if (info.getTypeClass().equals(Types.SQL_TIME.getTypeClass())) {

core/src/main/java/com/dtstack/flink/sql/util/ClassUtil.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222

2323
import java.lang.reflect.Array;
2424
import java.math.BigDecimal;
25+
import java.sql.Clob;
2526
import java.sql.Date;
27+
import java.sql.NClob;
2628
import java.sql.Time;
2729
import java.sql.Timestamp;
2830
import java.util.HashMap;
@@ -101,6 +103,10 @@ public static Class<?> stringConvertClass(String str) {
101103
case "decimal":
102104
case "decimalunsigned":
103105
return BigDecimal.class;
106+
case "clob":
107+
return Clob.class;
108+
case "nclob":
109+
return NClob.class;
104110
default:
105111
break;
106112
}

rdb/rdb-sink/src/main/java/com/dtstack/flink/sql/sink/rdb/JDBCTypeConvertUtils.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
import org.slf4j.Logger;
2323
import org.slf4j.LoggerFactory;
2424

25+
import java.io.StringReader;
2526
import java.math.BigDecimal;
27+
import java.sql.Clob;
2628
import java.sql.Date;
29+
import java.sql.NClob;
2730
import java.sql.PreparedStatement;
2831
import java.sql.SQLException;
2932
import java.sql.Time;
@@ -155,6 +158,12 @@ public static void setField(PreparedStatement upload, int type, Object field, in
155158
case java.sql.Types.LONGVARBINARY:
156159
upload.setBytes(index + 1, (byte[]) field);
157160
break;
161+
case Types.CLOB:
162+
case Types.NCLOB:
163+
try (StringReader reader = new StringReader(field.toString())) {
164+
upload.setClob(index + 1, reader);
165+
}
166+
break;
158167
default:
159168
upload.setObject(index + 1, field);
160169
LOG.warn("Unmanaged sql type ({}) for column {}. Best effort approach to set its value: {}.",
@@ -163,8 +172,7 @@ public static void setField(PreparedStatement upload, int type, Object field, in
163172
// case java.sql.Types.ARRAY:
164173
// case java.sql.Types.JAVA_OBJECT:
165174
// case java.sql.Types.BLOB:
166-
// case java.sql.Types.CLOB:
167-
// case java.sql.Types.NCLOB:
175+
// case java.sql.Types.NCLOB:
168176
// case java.sql.Types.DATALINK:
169177
// case java.sql.Types.DISTINCT:
170178
// case java.sql.Types.OTHER:
@@ -272,7 +280,11 @@ public static int[] buildSqlTypes(List<Class> fieldTypeArray) {
272280
} else if (fieldType.equals(Date.class.getName())) {
273281
tmpFieldsType[i] = Types.DATE;
274282
} else if (fieldType.equals(Time.class.getName())) {
275-
tmpFieldsType[i] = Types.TIME;
283+
tmpFieldsType[i] = Types.TIME;
284+
}else if (fieldType.equals(Clob.class.getName())){
285+
tmpFieldsType[i] = Types.CLOB;
286+
} else if (fieldType.equals(NClob.class.getName())) {
287+
tmpFieldsType[i] = Types.NCLOB;
276288
} else {
277289
throw new RuntimeException("no support field type for sql. the input type:" + fieldType);
278290
}

0 commit comments

Comments
 (0)