Raw Query Interface OK
function (connectionName, table, query, data, cb) {
            var connectionObject = connections[connectionName];
            if (LOG_DEBUG) {
                console.log("BEGIN query");
            }
            
            if (_.isFunction(data)) {
                cb = data;
                data = null;
            }
            
            // Run query
            if (!data)
                data = {};
            connectionObject.pool.getConnection(
                    function (err, connection)
                    {
                        if (err) {
                            return handleQueryError(err, 'query');;
                        }
                        if (LOG_QUERIES) {
                            console.log('Executing query: ' + query);
                        }
                        connection.execute(query, data, {outFormat: oracledb.OBJECT}, function (err, result) {
                            if (err) {
                                doRelease(connection);
                                return cb(err, result);
                            }
                            
                            return castClobs(result, function (err, result) {
                                if (err) {
                                    doRelease(connection);
                                    return cb(err, result);
                                }
                                if (LOG_QUERIES) {
                                    console.log("Length: " + result.rows.length);
                                }
                                doRelease(connection);
                                return cb(err, result);
                            });
                        });
                    });
        }