Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >HANA XSJS - InternalError: dberror(Connection.prepareStatement):608 -超出最大预准备语句数

HANA XSJS - InternalError: dberror(Connection.prepareStatement):608 -超出最大预准备语句数
EN

Stack Overflow用户
提问于 2019-10-18 08:58:22
回答 1查看 811关注 0票数 0

我有一个xsjs服务,它用来自另一个表的数据填充一些表。运行一段时间后,服务显示以下错误: InternalError: dberror(Connection.prepareStatement):608 -超过最大预准备语句数:每个连接的预准备语句数不能超过最大语句数

我在for循环中使用prepareStatement语句在开头打开了一个$.db.getConnection(),在结尾只打开了一个。(有几个类似于其他表的循环)

代码语言:javascript
运行
AI代码解释
复制
var aSQL = "select field from table";
var conn  = $.hdb.getConnection(); var connInsert  = $.db.getConnection();
var rsLevel1 = conn.executeQuery(aSQL);

var s = {};
var loc_descr_group = [];
var row = {};

for (i = 0; i < rsLevel1.length; i++) {
    var entry = rsLevel1[i].field;
    var split = entry.split(",");
    for (var j = 0; j<split.length; j++){
        if (loc_descr_group.indexOf(split[j]) == -1){
            loc_descr_group.push(split[j]);
            var value = split[j].replace(/'/g,"''");

            sSQL = "insert into another_table "
                + " values ('"+value+"')";
            pstmt = connInsert.prepareStatement(sSQL);

            pstmt.execute(); 
            connInsert.commit();

        }
    }
}
connInsert.close();
conn.close();

我找不到任何关于xsjs上使用的最大prepareStatement数量的信息。有吗?

谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2019-10-20 06:42:35

这里的问题不是每个连接都有预准备语句的限制,而是代码在循环中不必要地创建了新的预准备语句。

预准备语句的整个思想是重用。当运行多个在结构上相同且仅在所涉及的实际值上不同的语句时,使用预准备语句允许解析、检查和优化一次查询结构,并一次又一次地重用它。

与其为每个insert创建准备好的语句对象,不如在嵌套循环构造之前创建一次。使用绑定变量可以提高insert语句的执行速度和安全性,而不是将引号和逗号分隔的值粘贴到SQL字符串中。

此外,每次插入后都有一个COMMIT。如果确实需要这样做,那么使用自动提交连接可能是更好的选择。如果不是必需的,COMMIT应该只在循环结束后发送一次。这不仅仅是性能问题(COMMIT总是同步的--您的代码正在等待它),而且可能只插入了一半的记录。

最后,代码使用两种不同的连接方法$.db.getConnection$.hdb.db.connection来创建两个独立的连接对象。对于给定的上下文,这是不必要的,并且相当混乱。只需使用较新的$.hdb.db.connection和单个连接就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58447375

复制
相关文章
SAP HANA XS 的xsjs举例
function doImport() { var data = '', conn = $.db.getConnection(), pstmt; if($.request.body){ data = $.request.body.asString(); } var conn = $.db.getConnection(); var pstmt = conn.prepareStatement( 'INSERT INTO "TEST
matinal
2020/11/27
5940
【SAP HANA系列】SAP HANA XS使用JavaScript编程详解
SAP HANA XS支持JavaScript中的服务器端应用程序编程。开发的服务器端应用程序使用JavaScript API将授权数据公开给客户端请求,例如,由客户端GUI(如Web浏览器,SAPUI5应用程序或移动设备)这些客户端。
matinal
2020/11/12
5160
【SAP HANA系列】SAP HANA XS使用JavaScript编程详解
【SAP HANA系列】SAP UI5上传图片 用XSJS存储在HANA中的方法
玩就玩一个高级的,此篇文章包含了SAP UI5,SAP HANA,SAP XS HANA串联起来
matinal
2020/11/13
6690
【SAP HANA系列】SAP UI5上传图片 用XSJS存储在HANA中的方法
【第二篇】SAP HANA XS使用JavaScript编程详解
SAP HANA XS支持JavaScript中的服务器端应用程序编程。开发的服务器端应用程序使用JavaScript API将授权数据公开给客户端请求,例如,由客户端GUI(如Web浏览器,SAPUI5应用程序或移动设备)这些客户端。
matinal
2020/11/27
4810
【第二篇】SAP HANA XS使用JavaScript编程详解
Git 上传文件超出最大值
昨天在上传打包的程序的时候,git 意外报错了,试了一下,并不是因为有冲突什么的,仔细看了一下报错:
zucchiniy
2020/05/22
7850
SAP UI5上传图片 用XSJS存储在HANA中的方法
玩就玩一个高级的,此篇文章包含了SAP UI5,SAP HANA,SAP XS HANA串联起来
matinal
2020/11/27
8850
设置Textview最大长度,超出显示省略号
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120307.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/18
2K0
SAP HANA使用XS和HTTP创建proxy
1、一个server.xshttpdest文件,用于定义我们要访问的服务器的详细信息
matinal
2020/11/27
5510
【SAP HANA系列】SAP HANA使用XS和HTTP创建proxy
1、一个server.xshttpdest文件,用于定义我们要访问的服务器的详细信息
matinal
2020/11/12
6470
【SAP HANA系列】SAP HANA使用XS和HTTP创建proxy
【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
前面几篇讲了SAP HANA XS JavaScript(JS)的基础内容和相应API,这篇讲一下JavaScript如何与后台交互,此篇讲存储过程(Procedures)。
matinal
2020/11/27
7920
【SAP HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
前面几篇讲了SAP HANA XS JavaScript(JS)的基础内容和相应API,这篇讲一下JavaScript如何与后台交互,此篇讲存储过程(Procedures)。
matinal
2020/11/11
1K0
【SAP HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
【SAP HANA系列】SAP HANA XS使用服务器JavaScript Libraries详解
上一篇我们讲了SAP HANA XS JavaScript的安全事项,这一篇讲一下JavaScript的资源库使用。
matinal
2020/11/11
7080
【SAP HANA系列】SAP HANA XS使用服务器JavaScript Libraries详解
keras:InternalError: Failed to create session
如题,keras出现以上错误,解决办法: 找到占用gpu的进程: nvidia-smi -q 杀死这些进程即可: kill -9 xxxxx
Echo_fy
2018/10/10
1.2K0
如何发挥预训练CLIP的最大潜力?
最近在看ACL 2022论文的时候,发现了一篇很有意思的文章:CLIP Models are Few-shot Learners。这个文章标题马上让人联想起GPT3那篇文章Language Models are Few-Shot Learners。CLIP自2021年被提出以来一直是多模态领域研究的热点,结合对比学习和prompt这两种方法,利用文本信息进行图像的无监督训练,实现zero-shot的图像分类,也可以被应用到图片文本匹配等多模态任务中。CLIP Models are Few-shot Learners这篇文章对CLIP进行了更加深入的探索,包括如何利用CLIP通过zero-shot、few-shot的方式解决VQA任务、图文蕴含任务。下面带大家详细梳理一下这篇论文的工作。
圆圆的算法笔记
2022/09/22
2.5K0
如何发挥预训练CLIP的最大潜力?
网络流--最大流--hlpp(预流推进)模板
//500ms 秒掉洛谷推流问题 #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <queue> using namespace std; typedef long long LL; typedef long long F_type; const int MAXN = 1.2e3 + 10, INF = 0x3f3f3f3f; const LL LINF = (LL)INF << 3
风骨散人Chiam
2020/10/28
6590
LeetCode MySQL 608. 树节点
写一个查询语句,输出所有节点的编号和节点的类型, 并将结果按照节点编号排序。上面样例的结果为:
Michael阿明
2021/02/19
3690
点击加载更多

相似问题

预准备语句数据库

32

预准备语句数组分解

12

HANA XSJS app认证方式:选择哪种方式?

135

使用XSJS将图像插入SAP HANA表

12

SAP Hana XSJS Ajax后-内部服务器错误

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文