Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SAP HANA找不到表/视图_Java_Jdbc_Sap_Hana - Fatal编程技术网

Java SAP HANA找不到表/视图

Java SAP HANA找不到表/视图,java,jdbc,sap,hana,Java,Jdbc,Sap,Hana,我正在尝试连接运行在谷歌云平台上的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

我正在尝试连接运行在谷歌云平台上的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")
    );
你能帮我解决这个问题吗?
谢谢

根据提供的文档,我们可以观察到您在SAP JDBC连接字符串中使用的端口存在问题

端口应为3<实例号>15;例如,30015,如果实例为00

根据上面的解释,对连接字符串进行必要的更改可以解决问题

现在更正的连接字符串如下(基于问题中提供的参数):

希望这有帮助

试试看

"select * from SYSTEM.\"TWEETS\""

我的实例号是90。所以,我使用的是39015端口,而不是30015端口。我尝试了上面的连接字符串,但仍然发生相同的异常。从您的代码来看,原因并不明显。我建议跟踪JDBC驱动程序,看看哪些命令实际上被传输到HANA。这方面有什么进展吗?同样的问题。。。
"select * from SYSTEM.\"TWEETS\""