mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
1、adapter/rdb,从库表字段(varchar,char,text,longtext)非空约束时,无法同步问题修正
2、主库存在0000-00-00 00:00:00时间时,从库表字段是非空约束时,无法同步问题修正
This commit is contained in:
@@ -68,7 +68,13 @@ public class JdbcTypeUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Object typeConvert(String columnName, String value, int sqlType, String mysqlType) {
|
public static Object typeConvert(String columnName, String value, int sqlType, String mysqlType) {
|
||||||
if (value == null || value.equals("")) {
|
if (value == null
|
||||||
|
|| (value.equals("")
|
||||||
|
&& !("longtext".equals(mysqlType)
|
||||||
|
|| "text".equals(mysqlType)
|
||||||
|
|| sqlType == Types.CHAR
|
||||||
|
|| sqlType == Types.VARCHAR
|
||||||
|
|| sqlType == Types.LONGVARCHAR))) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,10 +124,8 @@ public class JdbcTypeUtil {
|
|||||||
value = value.trim().replace(" ", "T");
|
value = value.trim().replace(" ", "T");
|
||||||
DateTime dt = new DateTime(value);
|
DateTime dt = new DateTime(value);
|
||||||
res = new Date(dt.toDate().getTime());
|
res = new Date(dt.toDate().getTime());
|
||||||
} else {
|
break;
|
||||||
res = null;
|
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case Types.TIME:
|
case Types.TIME:
|
||||||
value = "T" + value;
|
value = "T" + value;
|
||||||
DateTime dt = new DateTime(value);
|
DateTime dt = new DateTime(value);
|
||||||
@@ -132,10 +136,8 @@ public class JdbcTypeUtil {
|
|||||||
value = value.trim().replace(" ", "T");
|
value = value.trim().replace(" ", "T");
|
||||||
dt = new DateTime(value);
|
dt = new DateTime(value);
|
||||||
res = new Timestamp(dt.toDate().getTime());
|
res = new Timestamp(dt.toDate().getTime());
|
||||||
} else {
|
break;
|
||||||
res = null;
|
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case Types.CLOB:
|
case Types.CLOB:
|
||||||
default:
|
default:
|
||||||
res = value;
|
res = value;
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ public class SyncUtil {
|
|||||||
DateTime dt = new DateTime(v);
|
DateTime dt = new DateTime(v);
|
||||||
pstmt.setDate(i, new Date(dt.toDate().getTime()));
|
pstmt.setDate(i, new Date(dt.toDate().getTime()));
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setObject(i, value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setNull(i, type);
|
||||||
@@ -232,7 +232,7 @@ public class SyncUtil {
|
|||||||
DateTime dt = new DateTime(v);
|
DateTime dt = new DateTime(v);
|
||||||
pstmt.setTimestamp(i, new Timestamp(dt.toDate().getTime()));
|
pstmt.setTimestamp(i, new Timestamp(dt.toDate().getTime()));
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setObject(i, value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setNull(i, type);
|
||||||
|
|||||||
Reference in New Issue
Block a user