SAP DBTech JDBC:[259](14岁):无效的表名称:找不到表/视图

2020-09-27 03:45发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试使用以下Java代码连接HANA数据库,

尝试{
         Class.forName(" com.sap.db.jdbc.Driver");
         字符串url =" jdbc:sap://myhost:39015/?";
         字符串用户=" MYUSER";
         字符串密码=" PASSWORD";
         System.out.println("正在连接到HANA ..!");
         连接cn = DriverManager.getConnection(URL,用户,密码);
         System.out.println("成功连接到HANA!");
         ResultSet rs = cn.createStatement()。executeQuery(" select * from \" TWEETS \"");
         rs.next();
         System.out.println(rs.getString(1));
     } catch(Exception e){
         e.printStackTrace();
     } 

它成功连接了HANA数据库。 但是会发生以下异常。

 com.sap.db.jdbc.exceptions.JDBCDriverException:SAP DBTech JDBC:[259](第14位):无效的表名:在模式SYSTEM中找不到表/视图TWEETS:第1行第15列(在pos 14  )
     在com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:334)
     在com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:165)
     在com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:104)
     在com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1110)
     在com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:854)
     在com.sap.db.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:925)

TWEETS 表位于 SYSTEM 模式下,我可以使用HANA sudio(Eclipse插件)进行查询。 但是,我无法使用上述Java代码查询表。

请帮助我解决此问题。

P.S:我也尝试了以下组合来查询 TWEETS 表。 但是没有运气!

  1。  "从TWEETS中选择*"
 2."从SYSTEM.TWEETS中选择*"
 3."从\" TWEETS \"中选择*"
 4."从\"系统\"。\" TWEETS \""中选择*
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试使用以下Java代码连接HANA数据库,

尝试{
         Class.forName(" com.sap.db.jdbc.Driver");
         字符串url =" jdbc:sap://myhost:39015/?";
         字符串用户=" MYUSER";
         字符串密码=" PASSWORD";
         System.out.println("正在连接到HANA ..!");
         连接cn = DriverManager.getConnection(URL,用户,密码);
         System.out.println("成功连接到HANA!");
         ResultSet rs = cn.createStatement()。executeQuery(" select * from \" TWEETS \"");
         rs.next();
         System.out.println(rs.getString(1));
     } catch(Exception e){
         e.printStackTrace();
     } 

它成功连接了HANA数据库。 但是会发生以下异常。

 com.sap.db.jdbc.exceptions.JDBCDriverException:SAP DBTech JDBC:[259](第14位):无效的表名:在模式SYSTEM中找不到表/视图TWEETS:第1行第15列(在pos 14  )
     在com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:334)
     在com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:165)
     在com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:104)
     在com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1110)
     在com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:854)
     在com.sap.db.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:925)

TWEETS 表位于 SYSTEM 模式下,我可以使用HANA sudio(Eclipse插件)进行查询。 但是,我无法使用上述Java代码查询表。

请帮助我解决此问题。

P.S:我也尝试了以下组合来查询 TWEETS 表。 但是没有运气!

  1。  "从TWEETS中选择*"
 2."从SYSTEM.TWEETS中选择*"
 3."从\" TWEETS \"中选择*"
 4."从\"系统\"。\" TWEETS \""中选择*
 
付费偷看设置
发送
6条回答
N-Moskvin
1楼-- · 2020-09-27 04:12

嗨,

表名的大小写也很重要。

可以检查系统架构中的TWEETS表是否全部大写。

或者,如果可以的话,您可以从Studio中发布目录的图像。

谢谢。

最好的问候

安贾利。

Bunny_CDM
2楼-- · 2020-09-27 04:04

嗨,

两个问题:

1)您是否使用完全相同的用户从您的应用程序以及通过HANA studio连接到数据库?

2)此HANA系统是否有多个租户数据库?

Tong__Ming
3楼-- · 2020-09-27 04:09

您是否正在连接到正确的系统,您与Java代码中的hana实例建立的连接可能是 与您在hana studio中访问的内容不同,这是一种可能。

Aaron 3364
4楼-- · 2020-09-27 04:04

嗨,MYUSER模式用户是否对SYSTEM Schema拥有访问对象特权,您说您使用hanastudio登录了, 它有效,您是否使用SYSTEM用户ID登录到hana studio?

谢谢

Aniruddha

风早神人
5楼-- · 2020-09-27 04:13

嗨,迈克尔,

您必须在查询ex上包括模式名称:

从YOUR_SCHEMA中选择*。\" TWEETS \""); 
huskylover
6楼-- · 2020-09-27 04:01

仅当表所在的模式与当前模式不同时才需要。 SYSTEM模式(不好的做法!),并且连接是由SYSTEM用户完成的(更糟糕的做法!),因此在这种情况下,名称解析不需要显式的模式名称。

一周热门 更多>