なぜJSON_VALUEを使用しているのですか?ドライバーはネイティブJavaScriptオブジェクトを返します。クエリは次のように記述できます:
select department "department",
ufh "ufh",
libelle "libelle",
nomhopital "nomhopital",
typeservice "typeservice"
from Z_SOUPAP2CARTESITE
where actif=1
上記のクエリでは、二重引用符で囲まれた列エイリアスを使用して、キーの大文字と小文字を制御しています。
デフォルトでは、ドライバーは配列の配列を返します(キーなし)。オブジェクトの配列が必要な場合は、optionsオブジェクトをexecute
に渡す必要があります。 outFormat
を変更します 。ドキュメントの次の部分を参照してください: https://oracle.github。 io / node-oracledb / doc / api.html#queryoutputformats
ドキュメントの例を次に示します。
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);
JSON_VALUEなどのJSON生成関数をOracleで使用する場合は、二重解析を回避する必要があります。文字列にJSONとしてアクセスするだけです。
Node.jsとOracleデータベースを使用したRESTAPIの構築の詳細については、次のシリーズを参照してください。 https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/ >