Robię lokalny rozwój dla czapki SAP z projektem NodeJS w Vscode. Jestem połączony z serwerem XSA. Próbuję utworzyć użytkownika bazy danych HANA w środowisku XSA. Chcę najpierw sprawdzić, czy lista użytkowników, którą tworzy moja aplikacja, jest już istniejąca, czy nie. W tym celu próbuję wykonać zapytanie wybrane z klauzulą. To przygotowane oświadczenie, które próbuję wykonać z EXERABATCH (tablica). Poniżej znajduje się kod.

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)

Wykonanie zapytania nie powiedzie się z następującym błędem - Błąd

    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)

Chcę wiedzieć, jeśli wybierz Query / instrukcja obsługuje funkcjonalność EXERABATCH () w HANA, jako ta sama instrukcja SELECT działa bez żadnego znaku zastępczego, wtedy, gdy wartość nazwy użytkownika jest dostarczana bezpośrednio w klauzuli, a EXEC () Zamiast Execbatch () Czy jest to, że jestem tutaj jakiś punkt?

0
Shreyasi Chakraborty 17 październik 2020, 18:05

1 odpowiedź

Najlepsza odpowiedź

EXERABATCH () - Zwraca nie ma wierszy w wyniku wykonania zapytania. Wybierz zapytanie zwraca zestaw wyników (jeśli istnieje) lub pustą tablicę w węzeł.js Dlatego execbatch () nie jest kompatybilny z wybranym zapytaniem, ponieważ Execbatch () jest używany do wykonania wsadowego i wyboru jest jednym strzałem zamiast partii.

0
Shreyasi Chakraborty 6 listopad 2020, 11:34