Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Converter a saída da consulta Oracle para json (Oracle / NodeJS)


Por que você está usando JSON_VALUE? O driver retorna objetos JavaScript nativos. Você poderia escrever a consulta como:
select department "department",
  ufh "ufh",
  libelle "libelle",
  nomhopital "nomhopital",
  typeservice "typeservice"
from Z_SOUPAP2CARTESITE 
where actif=1 

Na consulta acima, os aliases de coluna com aspas duplas são usados ​​para controlar o caso das chaves.

Por padrão, o driver retorna uma matriz de matrizes (sem chaves). Se você quiser um array de objetos, você precisa passar um objeto de opções para execute que altera o outFormat . Veja esta parte do documento:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats

Aqui está um exemplo do 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);

Se você quiser usar as funções de geração de JSON no Oracle, como JSON_VALUE, você deve evitar uma análise dupla - basta acessar a string como JSON.

Consulte esta série para obter mais informações sobre como criar uma API REST com Node.js e Oracle Database:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/