Oracle
 sql >> Database >  >> RDS >> Oracle

Converti l'output della query Oracle in json (Oracle / NodeJS)

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/