whole_func_string: 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);
                              });
                          });
                      });
          }
func_code_string: 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);
                              });
                          });
                      });
          }
func_documentation_string: Raw Query Interface OK