sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sowmya Ramesh (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SQOOP-2737) Cannot import table from Oracle with column with spaces in name
Date Thu, 18 Feb 2016 01:22:18 GMT

    [ https://issues.apache.org/jira/browse/SQOOP-2737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15151538#comment-15151538
] 

Sowmya Ramesh commented on SQOOP-2737:
--------------------------------------

[~jakub_havlik]: As [~venkatnrangan] mentioned issue is seen only if the length of "SCHEMA"."TABLE"
> 30 chars. 
Issue is seen only with the patch attached because patch attached adds the quotes to table
name. Without the patch USER_MG_DEV_HAVLIKJ_A2.MD_BRICKS_TEST3 won't be enclosed in "" and
hence USER_MG_DEV_HAVLIKJ_A2 and MD_BRICKS_TEST3 are considered are separate identifiers.
With the patch USER_MG_DEV_HAVLIKJ_A2.MD_BRICKS_TEST3 is quoted and treated as one single
identifier whose len > 30 chars.

As specified by Venkat, I will fix the escape logic to consider SCHEMA.TABLE and quote it
as "SCHEMA"."TABLE" and not as"SCHEMA.TABLE".

I verified the patch attached in normal and direct mode but len of schema.table < 30 and
hence I didn't hit this issue.

I will upload the patch with the fix shortly. Thanks!

> Cannot import table from Oracle with column with spaces in name
> ---------------------------------------------------------------
>
>                 Key: SQOOP-2737
>                 URL: https://issues.apache.org/jira/browse/SQOOP-2737
>             Project: Sqoop
>          Issue Type: Bug
>          Components: connectors/oracle
>    Affects Versions: 1.4.5
>            Reporter: Jakub HavlĂ­k
>            Assignee: Sowmya Ramesh
>            Priority: Critical
>         Attachments: SQOOP-2737.V0.patch, options.txt, oracleDataCreate.sql, stdout.txt,
syslog.txt
>
>
> When importing database containing table(s) with spaces in column name(s) following error
is displayed:
> {code}
> Error: java.io.IOException: SQLException in nextKeyValue
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277)
> 	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:553)
> 	at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
> 	at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
> 	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
> 	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
> 	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
> 	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
> 	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where
expected
> 	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
> 	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
> 	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
> 	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
> 	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
> 	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
> 	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
> 	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
> 	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
> 	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
> 	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
> 	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
> 	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111)
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235)
> 	... 11 more
> {code}
> As a enterprise user I would expect that I can import tables with spaces in a column
name with no issues.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message