Proč používáte JSON_VALUE? Ovladač vrací nativní objekty JavaScriptu. Dotaz můžete napsat jako:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
V dotazu výše se aliasy sloupců ve dvojitých uvozovkách používají k ovládání velikosti písmen.
Ve výchozím nastavení ovladač vrací pole polí (žádné klíče). Pokud chcete pole objektů, musíte předat objekt options do execute
který změní outFormat
. Viz tuto část dokumentu:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats
Zde je příklad z dokumentu:
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);
Pokud chcete v Oracle používat funkce generování JSON, jako je JSON_VALUE, musíte se vyhnout dvojité analýze – stačí k řetězci přistupovat jako k JSON.
Další informace o vytváření REST API pomocí Node.js a Oracle Database najdete v této sérii:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/