【发布时间】:2017-07-24 06:36:43
【问题描述】:
我正在尝试连接在 Google Cloud Platform 中运行的 HANA 数据库。这是我的java代码,
try {
Class.forName("com.sap.db.jdbc.Driver");
String url = "jdbc:sap://myhost:39015/?";
String user = "MYUSER";
String password = "PASSWORD";
System.out.println("Connecting to HANA..!");
Connection cn = DriverManager.getConnection(url, user, password);
System.out.println("Connection to HANA successful!");
ResultSet rs = cn.createStatement().executeQuery("select * from \"TWEETS\"");
rs.next();
System.out.println(rs.getString(1));
} catch (Exception e) {
e.printStackTrace();
}
TWEETS 表存在于SYSTEM 架构下,我可以使用 HANA sudio(Eclipse 插件)查询TWEETS 表。但是,当我尝试从 java 代码中查询时,会发生以下异常。
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [259] (at 14): invalid table name: Could not find table/view TWEETS in schema SYSTEM: line 1 col 15 (at pos 14)
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:334)
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:165)
at com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:104)
at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1110)
at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:854)
at com.sap.db.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:925)
注意:我也尝试了以下组合,但没有运气!
1. "select * from TWEETS"
2. "select * from SYSTEM.TWEETS"
3. "select * from \"TWEETS\"
4. "select * from \"SYSTEM\".\"TWEETS\""
建表命令,
CREATE COLUMN TABLE TWEETS(
"ID" INTEGER NOT NULL,
"USER_NAME" NVARCHAR(100),
"CREATED_AT" DATE,
"TEXT" NVARCHAR (140),
"HASH_TAGS" NVARCHAR (100),
PRIMARY KEY("ID")
);
您能帮我找出这里的问题吗? 谢谢!
【问题讨论】:
-
从您的代码来看,原因并不明显。我建议跟踪 JDBC 驱动程序以查看实际传输到 HANA 的命令。
-
这个运气好吗?同样的问题...