首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Azure函数连接到本地Oracle-db?

如何使用Azure函数连接到本地Oracle-db?
EN

Stack Overflow用户
提问于 2019-05-27 17:00:14
回答 3查看 6K关注 0票数 0

我正在尝试创建一个Azure函数来连接和查询本地Oracle-DB。我看不到服务器上安装了Oracle客户端或ODBC驱动程序来处理此问题。

有什么使用JS或Python的解决方案吗?

我尝试使用node-odbc驱动程序,但服务器缺少Oracle客户端。

EN

回答 3

Stack Overflow用户

发布于 2019-05-27 18:27:28

部分回答连接到本地服务,如从Azure函数连接到Oracle-db,有一个现有的SO线程How to Azure function configure for Site-to-Site Connectivity?已经回答了它,你可以参考一下。因此,首先,您必须确保对内部部署服务器的网络访问可用。

如果要通过odbc查询oracle数据库,必须在客户端安装oracle odbc驱动程序。然而,oracle odbc驱动程序是一个商业组件,您需要为获得它付费,并在Azure函数中手动安装它。因此,即使你想使用JS或Python来连接它,我认为使用Java和Oracle jdbc驱动程序是Azure Functions中连接Oracle DB的更好的解决方案,以避免额外的安装。

我认为的另一种方式是在您的本地服务器上部署一个REST API应用程序作为代理,使用JS或Python处理来自Azure函数的查询请求,以帮助连接Oracle DB。

票数 1
EN

Stack Overflow用户

发布于 2021-01-25 12:00:19

使用Linux基础镜像创建代码并将其作为自定义Docker容器部署到Azure函数。在自定义映像中安装Oracle客户端库。请查看我的主题博客:https://www.ravitella.com/azure-function-container/

票数 1
EN

Stack Overflow用户

发布于 2019-05-27 23:39:38

您将需要建立混合连接。请参阅https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections

然后,您可以引用此线程来建立上下文:

https://social.msdn.microsoft.com/Forums/en-US/2434fe10-3219-4625-bdbf-b9e96421230b/entity-framework-with-oracle-and-sql

对于nodejs解决方案,我将添加NPM并使用Kudu使用node-oracledb:https://oracle.github.io/node-oracledb/doc/api.html#getstarted安装它

// myscript.js //此示例使用Node 8的async/await语法。

代码语言:javascript
复制
var oracledb = require('oracledb');

var mypw = ...  // set mypw to the hr schema password

async function run() {

  let connection;

  try {
    connection = await oracledb.getConnection(  {
      user          : "hr",
      password      : mypw,
      connectString : "localhost/XEPDB1"
    });

    let result = await connection.execute(
      `SELECT manager_id, department_id, department_name
       FROM departments
       WHERE manager_id = :id`,
      [103],  // bind value for :id
    );
    console.log(result.rows);

  } catch (err) {
    console.error(err);
  } finally {
    if (connection) {
      try {
        await connection.close();
      } catch (err) {
        console.error(err);
      }
    }
  }
}

run();

示例代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56322812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档