sql >> Base de Datos >  >> RDS >> Oracle

Convierta la salida de la consulta de Oracle a json (Oracle/NodeJS)

¿Por qué estás usando JSON_VALUE? El controlador devuelve objetos JavaScript nativos. Podría escribir la consulta como:

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

En la consulta anterior, los alias de columna entre comillas dobles se utilizan para controlar las mayúsculas y minúsculas de las claves.

De forma predeterminada, el controlador devuelve una matriz de matrices (sin claves). Si desea una matriz de objetos, debe pasar un objeto de opciones para execute que cambia el outFormat . Consulte esta parte del documento:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats

Aquí hay un ejemplo del 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);

Si desea utilizar las funciones de generación de JSON en Oracle, como JSON_VALUE, debe evitar un análisis doble:simplemente acceda a la cadena como JSON.

Consulte esta serie para obtener más información sobre cómo crear una API REST con Node.js y Oracle Database:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/