如何在hana XSJS查询中传递变量?

2020-09-15 11:01发布

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

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


我有一个必须根据条件删除某些表的要求。

我正在考虑的是将要删除的表的结果存储在变量中。

然后在放置表语句中调用变量。

我已经编写了相同的代码。 但这不起作用。 有人可以帮我吗?

 var temp1 = conn.prepareStatement("从M_CS_TABLES WHERE SCHEMA_NAME ='RR_ANALYST'中选择TABLE_NAME,然后向左(TABLE_NAME,3)='PH_'");
 var temp2 = temp1.executeQuery();
 
 而(temp2.​​next())
 {
 var get_table = temp2.​​getString(1);
//output =" Table" + get_table +" 
"; var temp3 = conn.prepareStatement(" drop table RR_ANALYST。" + get_table +"");; var temp4 = temp3.executeQuery(); 如果(!temp4.next()) { $ .response.setBody("检索数据失败"); $ .response.status = $ .net.http.INTERNAL_SERVER_ERROR; } 其他 { 输出=输出+"表已被删除"; 输出=输出+"
"; }

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

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


我有一个必须根据条件删除某些表的要求。

我正在考虑的是将要删除的表的结果存储在变量中。

然后在放置表语句中调用变量。

我已经编写了相同的代码。 但这不起作用。 有人可以帮我吗?

 var temp1 = conn.prepareStatement("从M_CS_TABLES WHERE SCHEMA_NAME ='RR_ANALYST'中选择TABLE_NAME,然后向左(TABLE_NAME,3)='PH_'");
 var temp2 = temp1.executeQuery();
 
 而(temp2.​​next())
 {
 var get_table = temp2.​​getString(1);
//output =" Table" + get_table +" 
"; var temp3 = conn.prepareStatement(" drop table RR_ANALYST。" + get_table +"");; var temp4 = temp3.executeQuery(); 如果(!temp4.next()) { $ .response.setBody("检索数据失败"); $ .response.status = $ .net.http.INTERNAL_SERVER_ERROR; } 其他 { 输出=输出+"表已被删除"; 输出=输出+"
"; }
付费偷看设置
发送
2条回答
代楠1984
1楼-- · 2020-09-15 11:32

您正在使用方法executeQuery来执行drop语句,但是该方法仅用于查询。 要执行拖放操作,请使用executeUpdate方法。 另外,请使用双引号将模式和表名引起来,以便正确使用大写/小写字母的表名。 另外,请使用新的$ .hdb接口而不是$ .db接口。

下面是一个对单个表进行删除的简单示例。

 var sTableName =" MISC_DROP";

 var conn = $ .hdb.getConnection();

 尝试{
     conn.executeUpdate(" DROP TABLE \" MISC \"。\"" + sTableName +" \"");
     $ .response.setBody(" Drop ok");
 }抓住{e} {
     $ .response.status = $ .net.http.INTERNAL_SERVER_ERROR;
     $ .response.setBody(e);
 }
 

关于,
弗洛里安语

SKY徐
2楼-- · 2020-09-15 11:29

在同一包中! capture.png

一周热门 更多>