Using oracledb node.js driver with outFormat:oracledb.OBJECT option returns json, but coloumn names are formated uppercase (property names follow Oracle's standard name-casing rules), like this: {"ID":"1"} Is it possible to make them in lowercase, like this: {"Id":"1"}?
JSON_OBJECT introduced In Oracle Database 12.2 is not available for me.
Just use column aliases:
const oracledb = require('oracledb');
const config = require('./dbConfig.js');
(async function() {
let conn;
let result;
try {
conn = await oracledb.getConnection(config);
result = await conn.execute(
`select first_name || ' ' || last_name name,
email
from employees
where rownum = 1`,
[], // no binds
{
outFormat: oracledb.OBJECT
}
);
// This is the problem, uppercase column names, no?
console.log(result.rows); // [ { NAME: 'Steven King', EMAIL: 'SKING' } ]
result = await conn.execute(
`select first_name || ' ' || last_name "name",
email "email"
from employees
where rownum = 1`,
[], // no binds
{
outFormat: oracledb.OBJECT
}
);
// Here's the result with case sensitve aliases
console.log(result.rows); // [ { name: 'Steven King', email: 'SKING' } ]
} catch (err) {
// Will throw, but only after finally runs
throw err;
} finally {
if (conn) {
try {
await conn.close();
} catch (err) {
console.log('error closing conn', err);
}
}
}
}());
Or "process" the results after. You might find this relevant: https://jsao.io/2015/07/relational-to-json-with-node-js/