oracledb使用promises链接sql调用

时间:2016-08-05 20:38:04

标签: node.js database oracle

我对使用NodeJS的oracledb很新。 我想做一些依赖的多个sql调用。 在第一次sql查询之后,我需要使用结果执行第二个sql查询,第二个查询的结果用于第三个。

我试图找到一些例子,却找不到任何例子。

编辑1 :添加用于链接sql查询的代码。 在执行查询sqltoExecute之前,我需要通过执行设置" set role"的查询来配置连接。然后另一个到#34;设置包" 在执行我的最终查询之前。

它只执行设置角色的第一个查询,然后不执行任何操作。

我在Ubuntu 14上使用NodeJS 4.4.7。

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
        });
    }
};

1 个答案:

答案 0 :(得分:0)

您的重复帖子中正在讨论这个问题:https://github.com/oracle/node-oracledb/issues/490