2016-08-05 3 views
0

Я довольно новичок в oracledb с NodeJS. Я хочу сделать несколько вызовов sql, которые зависят. После первого запроса sql мне нужно использовать результат для выполнения второго SQL-запроса, а результат второго запроса используется для третьего.oracledb chaining sql call с использованием обещаний

Я пытаюсь найти несколько примеров, но не нашел их.

EDIT 1: добавить код, используемый для цепочки запросов sql. перед выполнением запроса sqltoExecute, мне нужно настроить соединение, выполнив запрос, который устанавливает «заданную роль», а затем еще один, чтобы «установить пакет» перед выполнением моего окончательного запроса.

Он выполняет только первый запрос, задающий роль, а затем ничего.

Я использую на NodeJS 4.4.7 на Ubuntu 14.

exports.testChainingSqlQueries = function(config, sqlToExecute, callback) { 

    if (config) { 
     oracledb.getConnection(config) 
      .then(function(conn){ 

       return conn.execute(
         sqlQueries.sqlQuerySetRole() 
        ) 
        .then(function(result){ 
         console.log("Execution Succes : "+ sqlQueries.sqlQuerySetRole()); 
         return conn; 
        }) 
        .catch(function(err){ 
         console.log("Error Executing "+ sqlQueries.sqlQuerySetRole()); 
         return conn.close(); 
        }) 
      }) 
      .then(function(conn){ 

       return conn.execute(
         sqlQueries.sqlQuerySetPackage() 
        ) 
        .then(function(result){ 
         console.log("Execution Succes : "+ sqlQueries.sqlQuerySetPackage()); 
         return conn; 
        }) 
        .catch(function(err){ 
         console.log("Error executing : "+ sqlQueries.sqlQuerySetPackage()); 
         return conn.close(); 
        }) 
      }) 
      .then(function(conn){ 
       return conn.execute(
         sqlToExecute 
        ) 
        .then(function(result){ 
         console.log("Execution Succes : "+ sqlToExecute); 
         callback(result, null); 
         return conn.close(); 
        }) 
        .catch(function(err){ 
         console.log("Error executing : "+ sqlToExecute); 
         return conn.close(); 
        }) 
      }); 

    } else { 
     callback(null, { 
      message: "Configuration is invalid ", 
      config: config 
     }); 
    } 
}; 
+0

Вы можете включить код, который вы пробовали? В какой среде вы пытаетесь связать эти запросы sql? – FishStix

+0

Общие вопросы node-oracledb можно задать по адресу https://github.com/oracle/node-oracledb/issues –

+0

@FishStix. Я добавил код, который я использую для проверки цепочки. – inttyl

ответ