在HANA上通过Python和JDBC进行数据操作和定义

2020-09-21 22:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)具体来说,我想使用Python和...

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

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


具体来说,我想使用Python和/或JDBC在HANA上创建存储过程。

我尝试执行以下简单的DML查询,例如:

更新SYSTEMDB.UNIVERSITY.STUDENT SET SEMESTERS = 6,其中STUDENT_ID = 1 

虽然在从SQL控制台执行上述操作时效果很好,但是从JDBC或Python执行此操作时却收到以下错误:

"功能不受支持:远程数据库对象上不受支持的DML/DDL"

对于定义请求(例如CREATE PROCEDURE),也会发生同样的情况。

这是Python中的一个最小(非)工作示例:

从hdbcli导入dbapi
 导入系统
 连接= dbapi.connect(" 10.11.1.49",39015," SYSTEM"," MyPassword1")
 游标= connection.cursor()
 查询="""
     更新SYSTEMDB.UNIVERSITY.STUDENT SET SEMESTERS = 6其中STUDENT_ID = 1
 ""
 cursor.execute(查询)
 打印(cursor.fetchone())

用户" SYSTEM"对模式" UNIVERSITY"的特权是" CREATE ANY"。

所允许的查询类型是否有限制? 还是我访问表格的方式有问题?

4条回答
渐行渐远_HoldOn
2020-09-21 23:11

当您连接到SYSTEMDB并将数据存储在此SYSTEMDB中的模式中时,无需在以下位置提供DBNAME: SQL语句。

因此,只需省略" SYSTEMDB"。 语句中的一点点,代码就可以使用JDBC和Python。

作为一般提示:请勿将SYSTEMDB用于您的应用程序数据。 创建一个租户数据库(即使使用HANA Express Edition,也有一个默认的租户数据库)并连接到该租户数据库。

如果您想更多地了解为什么收到该错误消息,建议您阅读SAP HANA中多个数据库容器背后的概念(请参阅 help.sap.com )。

一周热门 更多>