Oracle driver first data

This commit is contained in:
Rinie Kervel
2022-10-11 17:04:38 +02:00
parent 4939b74179
commit 51952ecfdd
25 changed files with 259 additions and 381 deletions

View File

@@ -15,7 +15,7 @@ pg.types.setTypeParser(1184, 'text', val => val); // timestamp
function extractOracleColumns(result) {
console.log('result', result);
console.log('result.name', result[0].name);
//console.log('result.name', result[0].name);
console.log('result.map', result.map(fld => ({
columnName: fld.name.toLowerCase(),
})));
@@ -112,12 +112,21 @@ const drivers = driverBases.map(driverBase => ({
columns: [],
};
}
try {
console.log('sql', sql);
const res = await client.execute(sql);
console.log('res', res);
const columns = extractOracleColumns(res.metaData);
console.log('columns', columns);
return { rows: (res.rows || []).map(row => zipDataRow(row, columns)), columns };
}
catch(err) {
console.log('Error query', err);
}
finally {
console.log('finally', sql);
}
},
stream(client, sql, options) {
/*
@@ -128,12 +137,14 @@ const drivers = driverBases.map(driverBase => ({
*/
console.log('queryStream', sql);
const query = client.queryStream(sql);
// const consumeStream = new Promise((resolve, reject) => {
let rowcount = 0;
let wasHeader = false;
query.on('metaData', row => {
console.log('metaData', row);
query.on('metadata', row => {
console.log('metadata', row);
if (!wasHeader) {
columns = extractOracleColumns(query.metaData);
columns = extractOracleColumns(row);
if (columns && columns.length > 0) {
options.recordset(columns);
}
@@ -145,14 +156,6 @@ const drivers = driverBases.map(driverBase => ({
query.on('data', row => {
console.log('DATA', row);
if (!wasHeader) {
columns = extractOracleColumns(query._result);
if (columns && columns.length > 0) {
options.recordset(columns);
}
wasHeader = true;
}
options.row(zipDataRow(row, columns));
});
@@ -190,7 +193,16 @@ const drivers = driverBases.map(driverBase => ({
});
options.done();
});
query.on('close', function() {
// console.log("stream 'close' event");
// The underlying ResultSet has been closed, so the connection can now
// be closed, if desired. Note: do not close connections on 'end'.
resolve(rowcount);
});
//});
//const numrows = await consumeStream;
//console.log('Rows selected: ' + numrows);
client.query(query);
},
async getVersion(client) {
@@ -273,7 +285,7 @@ const drivers = driverBases.map(driverBase => ({
pass.end();
});
client.query(query);
//client.query(query);
return pass;
},