You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Bing Chen (JIRA)" <ji...@apache.org> on 2015/04/02 09:23:52 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=14392288#comment-14392288 ] 

Bing Chen commented on SQOOP-1722:
----------------------------------

Ran into the same issue- just need to put separate double quotes around the database schema and table names, and escape them properly like this:

--table "TestSchema\".\"/BIC/AZDSOV1_100"

I don't believe this is a bug, the table name would be referenced in SQL like this:

SELECT * FROM "TestSchema"."/BIC/AZDSOV1_100"

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