HANA中的Select Query支持execBatch吗?

问题描述

我正在使用VSCODE中的Nodejs项目为SAP CAP进行本地开发。我已连接到XSA服务器。我正在尝试在XSA环境中创建hana数据库用户。我想首先检查我的应用程序将创建的用户列表是否已经存在。为此,我正在尝试使用where子句执行选择查询。它是一个准备好的语句,我正在尝试使用execBatch(array)执行。下面是代码

let arr = [["POC_ADMIN_DEMO_USER_7"],["POC_ADMIN_DEMO_USER_1"]]
const checkuserexiststatement = await xsaDbConn.preparePromisified("SELECT USER_NAME FROM USERS WHERE USER_NAME = ?")
let readuserresult = await checkuserexiststatement.execBatch(arr)
console.table(readuserresult)

查询执行失败,并显示以下错误- Error

    Error: sql command would generate a result set at 
C:\Users\Documents\XSA\SAC_POC\cap_njs\cap_njs\user_management.js.createusers 
    (C:\Users\Documents\XSA\SAC_POC\cap_njs\cap_njs\user_management.js:59:60)

我想知道选择查询/语句是否支持Hana中的execBatch()功能,因为相同的选择语句无需任何占位符即可工作,即当在where子句中直接提供user_name的值时,使用exec()代替execBatch(),还是我在这里遗漏了一点?

解决方法

execBatch()-不返回由于执行查询而受影响的行。 Select查询返回结果集(如果有),否则返回Node.js中的空数组。 因此execBatch()与Select查询不兼容,因为execBatch()用于批处理执行,并且选择是一次射击而不是批处理。