[ https://issues.apache.org/jira/browse/NIFI-9064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17401647#comment-17401647 ]
ZhangCheng commented on NIFI-9064: ---------------------------------- Maybe I can fix this by making some change at DataTypeUtils.toTimestamp, sth like ``` if ("oracle.sql.TIMESTAMP".equals(value.getClass().getName())) { String orcValue = value.toString(); String orcFormat = "yyyy-MM-dd HH:mm:ss.SSS"; DateFormat dateFormat = getDateFormat(orcFormat); if (orcValue.length() > orcFormat.length()) { orcValue = orcValue.substring(0, orcValue.indexOf(".") + 4); } if (orcValue.length() < orcFormat.length()) { int supplement = orcFormat.length() - orcValue.length(); while (supplement > 0) { orcValue += '0'; supplement -- ; } } try { final java.util.Date utilDate = dateFormat.parse(orcValue); return new Timestamp(utilDate.getTime()); } catch (ParseException e) { throw new IllegalTypeConversionException("Could not convert value [" + value + "] of Oracle DB to Timestamp for field " + fieldName + " because the value is not in the expected date format: " + orcFormat); } } ``` > ExecuteSQLRecord support Oracle timestamp when `Use Avro Logical Types` is > true > -------------------------------------------------------------------------------- > > Key: NIFI-9064 > URL: https://issues.apache.org/jira/browse/NIFI-9064 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions > Affects Versions: 1.14.0 > Reporter: ZhangCheng > Assignee: ZhangCheng > Priority: Major > Fix For: 1.15.0 > > > When the source db is Oracle, and the table has `timestamp` column, using > `ExecuteSQLRecord`(the same as `QueryDatabaseTableRecord`) and set `Use Avro > Logical Types` true, we will get sth like this: > ``` > Caused by: java.io.IOException: > org.apache.nifi.serialization.record.util.IllegalTypeConversionException: > Cannot convert value [2021-08-19 10:58:50.000001] of type class > oracle.sql.TIMESTAMP to Timestamp for field TS > at > org.apache.nifi.processors.standard.sql.RecordSqlWriter.writeResultSet(RecordSqlWriter.java:88) > at > org.apache.nifi.processors.standard.AbstractExecuteSQL.lambda$onTrigger$1(AbstractExecuteSQL.java:302) > ... 14 common frames omitted > ``` -- This message was sent by Atlassian Jira (v8.3.4#803005)