Oracle
 sql >> Base de données >  >> RDS >> Oracle

Convertir la sortie de la requête Oracle en json (Oracle / NodeJS)

Pourquoi utilisez-vous JSON_VALUE ? Le pilote renvoie des objets JavaScript natifs. Vous pouvez écrire la requête comme :

select department "department",
  ufh "ufh",
  libelle "libelle",
  nomhopital "nomhopital",
  typeservice "typeservice"
from Z_SOUPAP2CARTESITE 
where actif=1 

Dans la requête ci-dessus, les alias de colonne entre guillemets doubles sont utilisés pour contrôler la casse des clés.

Par défaut, le pilote renvoie un tableau de tableaux (pas de clés). Si vous voulez un tableau d'objets, vous devez passer un objet d'options à execute qui change le outFormat . Consultez cette partie de la documentation :https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats

Voici un exemple tiré de la doc :

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);

Si vous souhaitez utiliser les fonctions de génération JSON dans Oracle, telles que JSON_VALUE, vous devez éviter une double analyse - accédez simplement à la chaîne en tant que JSON.

Consultez cette série pour plus d'informations sur la création d'une API REST avec Node.js et Oracle Database :https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/