Warum verwenden Sie JSON_VALUE? Der Treiber gibt native JavaScript-Objekte zurück. Sie könnten die Abfrage folgendermaßen schreiben:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
In der obigen Abfrage werden die Spaltenaliase in doppelten Anführungszeichen verwendet, um die Groß- und Kleinschreibung der Schlüssel zu steuern.
Standardmäßig gibt der Treiber ein Array von Arrays zurück (keine Schlüssel). Wenn Sie ein Array von Objekten möchten, müssen Sie ein Optionsobjekt an execute
übergeben das ändert das outFormat
. Siehe diesen Teil des Dokuments:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats
Hier ist ein Beispiel aus dem Dokument:
const result = await connection.execute(
`SELECT department_id, department_name
FROM departments
WHERE manager_id < :id`,
[110], // bind value for :id
{ outFormat: oracledb.OUT_FORMAT_OBJECT }
);
console.log(result.rows);
Wenn Sie die JSON-Generierungsfunktionen in Oracle verwenden möchten, z. B. JSON_VALUE, müssen Sie eine doppelte Analyse vermeiden - greifen Sie einfach als JSON auf den String zu.
Weitere Informationen zum Erstellen einer REST-API mit Node.js und Oracle Database finden Sie in dieser Serie:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/