2016-08-05 36 views
0

Ich bin ziemlich neu zu oracledb mit NodeJS. Ich möchte einige mehrere sql aufrufen, die abhängig sind. Nach der ersten SQL-Abfrage muss ich das Ergebnis verwenden, um die zweite SQL-Abfrage auszuführen, und das Ergebnis der zweiten Abfrage wird für die dritte verwendet.oracledb Verkettung sql Anruf mit Versprechungen

Ich versuche, einige Beispiele zu finden, aber konnte keine finden.

BEARBEITEN 1: Code hinzufügen, um die SQL-Abfragen zu verketten. vor der Ausführung der Abfrage sqltoExecute, muss ich die Verbindung konfigurieren, indem Sie eine Abfrage, die "set role" und dann eine andere "set package" vor der Ausführung meiner endgültigen Abfrage.

Es führen nur die erste Abfrage, die die Rolle und dann nichts festlegen.

Ich verwende auf NodeJS 4.4.7 auf 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

Können Sie Code enthalten, die Sie versucht haben? In welcher Umgebung versuchen Sie diese SQL-Abfragen zu verketten? – FishStix

+0

Allgemeine node-oracledb Fragen können unter https://github.com/oracle/node-oracledb/issues gestellt werden –

+0

@FishStix Ich habe den Code hinzugefügt, den ich verwende, um die Verkettung zu testen. – inttyl

Antwort