Varför använder du JSON_VALUE? Drivrutinen returnerar inbyggda JavaScript-objekt. Du kan skriva frågan som:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
I frågan ovan används kolumnaliasen med dubbla citattecken för att styra nycklarnas skiftläge.
Som standard returnerar drivrutinen en array av arrayer (inga nycklar). Om du vill ha en array av objekt måste du skicka ett optionsobjekt för att execute
som ändrar outFormat
. Se den här delen av dokumentet:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats
Här är ett exempel från dokumentet:
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);
Om du vill använda JSON-genereringsfunktionerna i Oracle, till exempel JSON_VALUE, måste du undvika en dubbeltolkning - bara komma åt strängen som JSON.
Se den här serien för mer information om att bygga ett REST API med Node.js och Oracle Database:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/