Поддерживает ли запрос Select execBatch() в HANA?

#sql #node.js #sap-cloud-platform #sap-cap

#sql #node.js #sap-облачная платформа #sap-cap

Вопрос:

Я занимаюсь локальной разработкой для SAP CAP с проектом Nodejs в VSCODE. Я подключен к серверу XSA. Я пытаюсь создать пользователя базы данных hana в среде XSA. Я хочу сначала проверить, существует ли уже список пользователей, который создаст мое приложение, или нет. Для этого я пытаюсь выполнить запрос select с предложением 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:UsersDocumentsXSASAC_POCcap_njscap_njsuser_management.js.createUsers 
    (C:UsersDocumentsXSASAC_POCcap_njscap_njsuser_management.js:59:60)
  

Я хочу знать, поддерживает ли запрос / оператор select функциональность execBatch() в Hana, поскольку тот же оператор select работает без какого-либо заполнителя, то есть когда значение user_name указывается непосредственно в предложении where, а exec() используется вместо execBatch(), Или я упускаю какой-то моментздесь?

Комментарии:

1. Если поддерживается execBatch () , можно найти в документации.

2. Да, после того, как я пройду удвоение, я понимаю, что — execBatch() не вернет ни одной из затронутых строк вместо строк. Поскольку запрос select возвращает строки, поэтому execBatch() не будет поддерживать запрос select.

Ответ №1:

execBatch() — не возвращает строк, затронутых в результате выполненного запроса. Запрос Select возвращает результирующий набор (если таковой имеется) или пустой массив в Node.js . Поэтому execBatch() несовместим с запросом Select, потому что execBatch() используется для пакетного выполнения, а выбор выполняется одним выстрелом вместо пакетного.