You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Mahesh (JIRA)" <ji...@apache.org> on 2015/12/18 13:43:47 UTC

[jira] [Commented] (SQOOP-1722) JDBCDriverException when trying to impart table from SAP BW to Hadoop. Table consists of frontslash( / ).

    [ 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)