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/