Hvorfor bruger du JSON_VALUE? Driveren returnerer native JavaScript-objekter. Du kan skrive forespørgslen som:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
I forespørgslen ovenfor bruges kolonnealiaserne med dobbelte anførselstegn til at kontrollere nøglernes store og små bogstaver.
Som standard returnerer driveren et array af arrays (ingen nøgler). Hvis du vil have en række objekter, skal du sende et option-objekt til execute
der ændrer outFormat
. Se denne del af dokumentet:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats
Her er et eksempel fra 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);
Hvis du vil bruge JSON-genereringsfunktionerne i Oracle, f.eks. JSON_VALUE, skal du undgå en dobbelt parse - bare få adgang til strengen som JSON.
Se denne serie for mere information om opbygning af en REST API med Node.js og Oracle Database:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/