lvchuanwen created SQOOP-2661:
---------------------------------
Summary: Improved sqoop extraction of Oracle 11 timestamp data
type exception problem
Key: SQOOP-2661
URL: https://issues.apache.org/jira/browse/SQOOP-2661
Project: Sqoop
Issue Type: Improvement
Components: connectors/generic
Affects Versions: 1.99.6
Environment: oracle 11g
sqoop1.99.6
Reporter: lvchuanwen
Fix For: 1.99.7
When we use sqoop to extract the timestamp Oracle type data, we must add
-Doracle.jdbc.J2EE13Compliant=true to the /sqoop/server/bin/catalina.sh script,
sqoop can work properly.
If the -Doracle.jdbc.J2EE13Compliant=true is not set due to carelessness
This error will occur
By: java.lang.ClassCastException: oracle.sql.TIMESTAMP cannot be cast to
java.sql.Timestamp Caused
Org.apache.sqoop.connector.jdbc.GenericJdbcExtractor.extract at
(GenericJdbcExtractor.java:79)
Org.apache.sqoop.connector.jdbc.GenericJdbcExtractor.extract at
(GenericJdbcExtractor.java:38)
Org.apache.sqoop.job.mr.SqoopMapper.run at (SqoopMapper.java:95)
7 more
we can use API resultSet.getTimestamp(i + 1) instead of
(java.sql.Timestamp)resultSet.getObject(i + 1); to avoid
This type converts exception .
resultSet.getDate(i + 1), resultSet.getTime(i+1) alse can instead of
(java.sql.Date)resultSet.getObject(i + 1), (java.sql.Time)resultSet.getObject(i
+ 1)
{code:title=GenericJdbcExtractor.java|borderStyle=solid}
switch (schemaColumn.getType()) {
case DATE:
// convert the sql date to JODA time as prescribed the Sqoop IDF
spec
array[i] =
LocalDate.fromDateFields((java.sql.Date)resultSet.getObject(i + 1));
break;
case DATE_TIME:
// convert the sql date time to JODA time as prescribed the Sqoop
IDF spec
array[i] =
LocalDateTime.fromDateFields((java.sql.Timestamp)resultSet.getObject(i + 1));
break;
case TIME:
// convert the sql time to JODA time as prescribed the Sqoop IDF
spec
array[i] =
LocalTime.fromDateFields((java.sql.Time)resultSet.getObject(i + 1));
break;
default:
//for anything else
array[i] = resultSet.getObject(i + 1);
}
{code}
reference:http://docs.oracle.com/cd/B28359_01/java.111/b31224/datacc.htm#i1024324
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)