0

我正在使用 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: 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() , 还是我在这里遗漏了一些要点?

4

1 回答 1

0

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

于 2020-11-06T11:34:26.870 回答