Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertieren Sie die Oracle-Abfrageausgabe in JSON (Oracle / NodeJS)

Warum verwenden Sie JSON_VALUE? Der Treiber gibt native JavaScript-Objekte zurück. Sie könnten die Abfrage folgendermaßen schreiben:

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

In der obigen Abfrage werden die Spaltenaliase in doppelten Anführungszeichen verwendet, um die Groß- und Kleinschreibung der Schlüssel zu steuern.

Standardmäßig gibt der Treiber ein Array von Arrays zurück (keine Schlüssel). Wenn Sie ein Array von Objekten möchten, müssen Sie ein Optionsobjekt an execute übergeben das ändert das outFormat . Siehe diesen Teil des Dokuments:https://oracle.github. io/node-oracledb/doc/api.html#queryoutputformats

Hier ist ein Beispiel aus dem Dokument:

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);

Wenn Sie die JSON-Generierungsfunktionen in Oracle verwenden möchten, z. B. JSON_VALUE, müssen Sie eine doppelte Analyse vermeiden - greifen Sie einfach als JSON auf den String zu.

Weitere Informationen zum Erstellen einer REST-API mit Node.js und Oracle Database finden Sie in dieser Serie:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/