Waarom gebruikt u JSON_VALUE? Het stuurprogramma retourneert native JavaScript-objecten. Je zou de vraag kunnen schrijven als:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
In de bovenstaande query worden de kolomaliassen tussen dubbele aanhalingstekens gebruikt om het hoofdlettergebruik van de sleutels te bepalen.
Standaard retourneert het stuurprogramma een array met arrays (geen sleutels). Als u een array van objecten wilt, moet u een options-object doorgeven aan execute
dat verandert de outFormat
. Zie dit deel van het document:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats
Hier is een voorbeeld uit het document:
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);
Als u de JSON-generatiefuncties in Oracle wilt gebruiken, zoals JSON_VALUE, moet u een dubbele ontleding vermijden - open de string gewoon als JSON.
Zie deze serie voor meer informatie over het bouwen van een REST API met Node.js en Oracle Database:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/