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

Mahesh commented on SQOOP-1722:
-------------------------------

Hi,

Instead of framing query in the way you did, you can try the below code:
sqoop import --connect jdbc:sap://host:3455/ --username ****** -password ****** 
----driver com.sap.db.jdbc.Driver --query "select * from 
\"SCHEMANAME\".\"TABLENAME\" WHERE \$CONDITIONS" --m 1 --delete-target-dir 
--target-dir ****** --fields-terminated-by '^' --hive-drop-import-delims
Here just replace the host with ur host and mention the port number as 
well..Enter the schema name and table name and the query should work from 
command line interface. Its similar to --table schemaname.tablename in sqoop 
but we are doing it the other way coz internally the --table 
schemaname.tablename will be fired as select * from schemaname.tablename oli so 
no issues.

ENJOY :)

> JDBCDriverException when trying to impart table from SAP BW to Hadoop. Table 
> consists of frontslash( / ).
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: SQOOP-1722
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1722
>             Project: Sqoop
>          Issue Type: Task
>          Components: sqoop2-shell
>    Affects Versions: 1.4.5
>            Reporter: Shine
>            Priority: Critical
>
> JDBCDriverException when trying to impart table from SAP BW to Hadoop. Table 
> consists of frontslash( / ).
> Schema name: TestSchema
> Table name:/BIC/AZDSOV1_100
> Sqoop command: sqoop import  --connect jdbc:sap://xxx:30015    --username 
> xxxx  --password xxxx --driver com.sap.db.jdbc.Driver -m 1 --table 
> "TestSchema./BIC/AZDSOV1_100" --target-dir /sqoop/output_BW_Table
> Question:
> How to resolve table name consisting of special characters like frontslash( / 
> )?
> Error log:
> 14/11/13 16:55:20 INFO manager.SqlManager: Using default fetchSize of 1000
> 14/11/13 16:55:20 INFO tool.CodeGenTool: Beginning code generation
> 14/11/13 16:55:20 ERROR manager.SqlManager: Error executing statement: 
> com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [257]: sql 
> syntax error: incorrect syntax near "\": line 1 col 17 (at pos 17)
> com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [257]: sql 
> syntax error: incorrect syntax near "\": line 1 col 17 (at pos 17)
>         at 
> com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:334)
>         at 
> com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:174)
>         at 
> com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:100)
>         at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1141)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.sendCommand(CallableStatementSapDB.java:1964)
>         at com.sap.db.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:978)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.doParse(CallableStatementSapDB.java:256)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.constructor(CallableStatementSapDB.java:215)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.<init>(CallableStatementSapDB.java:125)
>         at 
> com.sap.db.jdbc.CallableStatementSapDBFinalize.<init>(CallableStatementSapDBFinalize.java:31)
>         at 
> com.sap.db.jdbc.ConnectionSapDB.prepareStatement(ConnectionSapDB.java:1390)
>         at 
> com.sap.db.jdbc.trace.Connection.prepareStatement(Connection.java:347)
>         at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:525)
>         at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:548)
>         at 
> org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:191)
>         at 
> org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:175)
>         at 
> org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:262)
>         at 
> org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1235)
>         at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1060)
>         at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
>         at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
>         at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
>         at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
>         at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
>         at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
>         at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
> 14/11/13 16:55:20 ERROR manager.SqlManager: Error executing statement: 
> com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [257]: sql 
> syntax error: incorrect syntax near "\": line 1 col 17 (at pos 17)
> com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [257]: sql 
> syntax error: incorrect syntax near "\": line 1 col 17 (at pos 17)
>         at 
> com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:334)
>         at 
> com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:174)
>         at 
> com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:100)
>         at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1141)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.sendCommand(CallableStatementSapDB.java:1964)
>         at com.sap.db.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:978)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.doParse(CallableStatementSapDB.java:256)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.constructor(CallableStatementSapDB.java:215)
>         at 
> com.sap.db.jdbc.CallableStatementSapDB.<init>(CallableStatementSapDB.java:125)
>         at 
> com.sap.db.jdbc.CallableStatementSapDBFinalize.<init>(CallableStatementSapDBFinalize.java:31)
>         at 
> com.sap.db.jdbc.ConnectionSapDB.prepareStatement(ConnectionSapDB.java:1390)
>         at 
> com.sap.db.jdbc.trace.Connection.prepareStatement(Connection.java:347)
>         at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:525)
>         at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:548)
>         at 
> org.apache.sqoop.manager.SqlManager.getColumnNamesForRawQuery(SqlManager.java:126)
>         at 
> org.apache.sqoop.manager.SqlManager.getColumnNames(SqlManager.java:110)
>         at 
> org.apache.sqoop.orm.ClassWriter.getColumnNames(ClassWriter.java:1207)
>         at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1062)
>         at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
>         at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
>         at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
>         at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
>         at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
>         at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
>         at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
> 14/11/13 16:55:20 ERROR sqoop.Sqoop: Got exception running Sqoop: 
> java.lang.NullPointerException
> java.lang.NullPointerException
>         at 
> org.apache.sqoop.orm.ClassWriter.cleanColNames(ClassWriter.java:1045)
>         at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1066)
>         at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
>         at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
>         at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
>         at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
>         at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
>         at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
>         at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
>         at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)



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

Reply via email to