Perché stai usando JSON_VALUE? Il driver restituisce oggetti JavaScript nativi. Potresti scrivere la query come:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
Nella query precedente, gli alias di colonna tra virgolette doppie vengono utilizzati per controllare il caso delle chiavi.
Per impostazione predefinita, il driver restituisce un array di array (nessuna chiave). Se vuoi un array di oggetti, devi passare un oggetto options a execute
che cambia il outFormat
. Vedi questa parte del documento:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats
Ecco un esempio dal documento:
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);
Se vuoi utilizzare le funzioni di generazione JSON in Oracle, come JSON_VALUE, devi evitare una doppia analisi:accedi semplicemente alla stringa come JSON.
Vedere questa serie per ulteriori informazioni sulla creazione di un'API REST con Node.js e Oracle Database:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/