首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【SAP HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)

【SAP HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)

原创
作者头像
matinal
修改于 2020-11-11 10:16:58
修改于 2020-11-11 10:16:58
1.1K00
代码可运行
举报
文章被收录于专栏:SAP TechnicalSAP Technical
运行总次数:0
代码可运行

正文部分

前面几篇讲了SAP HANA XS JavaScript(JS)的基础内容和相应API,这篇讲一下JavaScript如何与后台交互,此篇讲存储过程(Procedures)。

从SAP HANA XS服务器端JavaScript(XSJS)调用存储过程,并使用JavaScript处理调用的结果。

XS程序提供了一种从XS服务器端JavaScript(XSJS)调用SAP HANA中的存储过程的方便方法,并使用JavaScript处理调用的结果。 XS程序库扩展了SAP HANA XS JavaScript数据库API中已有的功能。使用SAP HANA XS程序调用存储过程可以认为是开发XS JavaScript服务的任何简单XS JavaScript函数。

例如,在SAP HANA存储过程使用一个表作为输入参数和一个表作为输出参数,使用XS Procedures可以传递给该存储过程的JavaScript对象(或一组对象)。类似,存储过程调用的结果作为JavaScript对象的数组提供。将存储过程声明为XS JavaScript函数,然后调用存储过程,就像它是传递JavaScript对象的JavaScript函数一样。

要使用存储过程作为XS JavaScript函数,需要执行以下步骤:

使用引用现有表的参数调用过程,如果要将表作为参数传递而不是JavaScript对象,则必须在调用语句中指定表的名称(作为字符串)以及schema的名称。 以下示例显示如何引用表rating_table:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getRating('schema.rating_table', 3);

SAP HANA数据库能够实现存储过程调用的结果,也就是说,使用WITH OVERVIEW表达式将结果写入物理表。在WITH OVERVIEW表达式中,将字符串值传递给包含要实现的结果的输出参数位置。 返回的值不是本身,而是对已写入结果的表的引用。现在可以从指定的表中检索过程调用的结果,在本例中为OUTPUT_TABLE

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var resCall = getRating(rating, 3, "schema.output_table");

WITH OVERVIEW表达式还允许将过程的结果写入全局临时表中, 也就是说,在会话关闭时被截断的表。要使用XS过程将过程的结果写入全局临时表中,则不指定结果表的名称,将包含一个空字符串(''),如以下示例所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var conn = $.db.getConnection();
resCall = getRating(rating, 3, '', conn);

返回的引用指向全局临时表,可以使用相同的连接查询存储过程结果。为了确保访问全局临时表,有必要指定连接对象conn。

使用参数存储为表中的值来调用存储过程,如以下示例所示。使用与要传递的表的行对应的JavaScript数组来传递表值输入参数。这些行对象必须包含与列的名称对应的属性。 跳过的列填充为NULL,并且不符合相同命名列的属性将被忽略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var XSProc = $.import("sap.hana.xs.libs.dbutils", "procedures");
XSProc.setTempSchema($.session.getUsername().toUpperCase());
var conn = $.db.getConnection();
var createPurchaseOrder = XSProc.procedure("SAP_HANA_DEMO",
 "sap.hana.democontent.epm.Procedures::poCreate", {
 connection: conn
 });
var result = createPurchaseOrder([{
 "PURCHASEORDERID": '0300009001',
 "HISTORY.CREATEDBY": '0000000044',
 "HISTORY.CREATEDAT": new Date(),
 "HISTORY.CHANGEDBY": '0000000044',
 "HISTORY.CHANGEDAT": new Date()
}]);
if (result && result.ERROR.length > 0) {
 $.response.setBody(result.ERROR.length + " errors occurred.");
} else {
 $.response.setBody("no error occurred");
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
前面几篇讲了SAP HANA XS JavaScript(JS)的基础内容和相应API,这篇讲一下JavaScript如何与后台交互,此篇讲存储过程(Procedures)。
matinal
2020/11/27
9200
【SAP HANA系列】SAP HANA XS使用服务器JavaScript Libraries详解
上一篇我们讲了SAP HANA XS JavaScript的安全事项,这一篇讲一下JavaScript的资源库使用。
matinal
2020/11/11
7830
【SAP HANA系列】SAP HANA XS使用服务器JavaScript Libraries详解
【SAP HANA系列】SAP HANA XS的JavaScript API详解
SAP HANA扩展应用程序服务(SAP HANA XS)提供了一组服务器端JavaScript应用程序编程接口(API),可配置应用程序与SAP HANA进行交互。
matinal
2020/11/11
9000
【SAP HANA系列】SAP HANA XS的JavaScript API详解
【SAP HANA系列】SAP UI5上传图片 用XSJS存储在HANA中的方法
玩就玩一个高级的,此篇文章包含了SAP UI5,SAP HANA,SAP XS HANA串联起来
matinal
2020/11/13
7990
【SAP HANA系列】SAP UI5上传图片 用XSJS存储在HANA中的方法
【SAP HANA系列】SAP HANA XS使用JavaScript编程详解
SAP HANA XS支持JavaScript中的服务器端应用程序编程。开发的服务器端应用程序使用JavaScript API将授权数据公开给客户端请求,例如,由客户端GUI(如Web浏览器,SAPUI5应用程序或移动设备)这些客户端。
matinal
2020/11/12
5820
【SAP HANA系列】SAP HANA XS使用JavaScript编程详解
SAP HANA 技能[四] 存储过程
本篇只是讲述了一些简单的SAP HANA中的存储过程创建方法,后面会有详细内容讲解如何优雅的写存储过程。
Adil_zhang
2023/05/02
6570
【SAP ABAP系列】ABAP使用AMDP调用HANA存储过程
数据建模在SAP HANA视图中完成,需要读取视图的输出并将其保留在HANA表中。编写存储过程以从HANA视图读取数据并将数据插入HANA表。
matinal
2020/11/11
2.2K0
【SAP ABAP系列】ABAP使用AMDP调用HANA存储过程
【SAP HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】
使用SAP HANA XS数据服务(XSDS)库来查询CDS实体,类似于JavaScript对象一样。
matinal
2020/11/11
9490
【SAP HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】
【SAP HANA系列】SAP HANA XS使用JavaScript数据交互详解
在SAP HANA Extended Application Services(SAP HANA 扩展应用服务)中
matinal
2020/11/12
5330
【SAP HANA系列】SAP HANA XS使用JavaScript数据交互详解
java调用存储过程(stored procedures)的HelloWorld例子
1.java调用存储过程(stored procedures)的HelloWorld程序
马克java社区
2021/05/12
1.1K0
【SAP HANA系列】SAP HANA使用XS和HTTP创建proxy
1、一个server.xshttpdest文件,用于定义我们要访问的服务器的详细信息
matinal
2020/11/12
6820
【SAP HANA系列】SAP HANA使用XS和HTTP创建proxy
【SAP HANA系列】SAP HANA XS的JavaScript安全事项
我们都知道web程序都有潜在的安全隐患问题,那么SAP HANA XS的JavaScript也是一样,使用服务器端JavaScript编写应用程序代码,也有潜在的外部攻击(和风险)。
matinal
2020/11/12
9540
MySQL 进阶之存储过程/存储函数/触发器
上面给大家演示了存储过程中的基本语法,现在只是在存储过程中定义了一条简单的select 语句 ,并没有任何逻辑。
叫我阿杰好了
2022/11/07
2.8K0
MySQL 进阶之存储过程/存储函数/触发器
PL/SQL --> 存储过程
存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库。是一个有名字的PL/SQL代码块,支持接收或不接受参数
Leshami
2018/08/07
1.6K0
存储过程----sqlserver
存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。--摘自百度百科。
cultureSun
2023/05/18
1.3K0
MySQL的存储过程_MySQL创建存储过程
在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢?
全栈程序员站长
2022/11/08
24.8K0
MySQL的存储过程_MySQL创建存储过程
从头开始学MySQL——-存储过程与存储函数(1)
存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。
全栈程序员站长
2022/09/23
5640
从头开始学MySQL——-存储过程与存储函数(1)
相关推荐
【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档