我試圖連接在Google雲端平臺中運行的HANA數據庫。這裏是我的Java代碼,SAP HANA找不到表格/視圖
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();
}
下SYSTEM
模式存在TWEETS
表,我可以能夠使用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的命令。 –