如何从HANA XSA中的节点模块创建和使用临时表

2020-09-21 19:32发布

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

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


嗨,

我需要在node.js中运行某些操作时创建一个临时表。

在下面的查询中创建本地临时表导致错误: 命令错误:无效的表名:在架构 中找不到表/视图temp_table >

`创建本地临时表" $ {tempTable}"(some_columns)`

 `插入" $ {tempTable}"(some_columns)`

当我尝试使用全局临时表时,出现 错误:特权不足:未授权

`创建全局临时表" $ {tempTable}"(some_columns)`

我们如何在HANA XSA中动态创建一个临时表(意味着表名会根据某些输入而有所不同,并且一次我们将创建多个表并对其进行查询)并使用它们?

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

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


嗨,

我需要在node.js中运行某些操作时创建一个临时表。

在下面的查询中创建本地临时表导致错误: 命令错误:无效的表名:在架构 中找不到表/视图temp_table >

`创建本地临时表" $ {tempTable}"(some_columns)`

 `插入" $ {tempTable}"(some_columns)`

当我尝试使用全局临时表时,出现 错误:特权不足:未授权

`创建全局临时表" $ {tempTable}"(some_columns)`

我们如何在HANA XSA中动态创建一个临时表(意味着表名会根据某些输入而有所不同,并且一次我们将创建多个表并对其进行查询)并使用它们?

付费偷看设置
发送
2条回答
CPLASF-自律
1楼 · 2020-09-21 20:09.采纳回答

默认情况下,容器的应用程序运行时用户将没有DDL权限。 您有几种选择。 您可以创建具有定义者权限的存储过程(这意味着它将以容器的容器对象所有者技术用户身份运行),并且该存储过程在被调用时会创建临时表。 另一种选择是通过向您的容器添加default_access_role来调整自动授予技术用户的角色。 您可以为CREATE TEMPORARY TABLE授予技术用户架构特权。

https: //github.com/SAP/com.sap.openSAP.hana5.example/blob/hana2_sps03/core_db/src/roles/admin.hdbrole

https: //github.com/SAP/com.sap.openSAP.hana5.example/blob/hana2_sps03/core_db/src/defaults/default_access_role.hdbrole

软件心理学工程师
2楼-- · 2020-09-21 20:05

嗨,托马斯,

感谢您的回答。 是的,如果您要使用全局临时表,则应执行上述步骤。 但是对于本地临时表,我将当前模式添加为临时表名称的前缀,并且可以正常工作。

 utils.runDbQuery(dbClient,'SELECT CURRENT_SCHEMA FROM DUMMY',[])
 .then(rs => {
//创建临时表
 tempTable =`" $ {rs [0] .CURRENT_SCHEMA}"。"#$ {tempTable}"`;
 让tmpQuery =`CREATE LOCAL TEMPORARY TABLE $ {tempTable}(某些COL)

这里的一个问题是,当触发res.end()或res.send()时,临时表会自动删除还是应该手动删除?

一周热门 更多>