From 9b211bfd0d24115189b1e91559524c2e04412598 Mon Sep 17 00:00:00 2001 From: itsankitjain-google Date: Wed, 12 Jan 2022 18:13:25 +0530 Subject: [PATCH] oracle date is returned as timestamp --- .../java/io/cdap/plugin/oracle/OracleFieldsValidator.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/oracle-plugin/src/main/java/io/cdap/plugin/oracle/OracleFieldsValidator.java b/oracle-plugin/src/main/java/io/cdap/plugin/oracle/OracleFieldsValidator.java index 5f172199f..35f62c2f2 100644 --- a/oracle-plugin/src/main/java/io/cdap/plugin/oracle/OracleFieldsValidator.java +++ b/oracle-plugin/src/main/java/io/cdap/plugin/oracle/OracleFieldsValidator.java @@ -39,9 +39,14 @@ public boolean isFieldCompatible(Schema.Field field, ResultSetMetaData metadata, int scale = metadata.getScale(index); // Handle logical types first + if (fieldLogicalType == Schema.LogicalType.DATE) { + // oracle date also contains time part so the oracle driver treats date as timestamp + // https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT413 + return sqlType == Types.TIMESTAMP || super.isFieldCompatible(fieldType, fieldLogicalType, sqlType); + } if (fieldLogicalType == Schema.LogicalType.TIMESTAMP_MICROS) { return sqlType == OracleSinkSchemaReader.TIMESTAMP_LTZ || - super.isFieldCompatible(fieldType, fieldLogicalType, sqlType); + super.isFieldCompatible(fieldType, fieldLogicalType, sqlType); } else if (fieldLogicalType != null) { return super.isFieldCompatible(fieldType, fieldLogicalType, sqlType); }