【发布时间】:2012-03-03 22:40:23
【问题描述】:
有谁知道如何从 linux 中的 erlang 客户端连接到 oracle?我猜需要 ODBC 驱动程序。
【问题讨论】:
-
使用 oracle 保持可滚动光标关闭。 odbc 连接选项
{scrollable_cursors, off}. -
阅读我在下面发布的答案,它应该会有所帮助
有谁知道如何从 linux 中的 erlang 客户端连接到 oracle?我猜需要 ODBC 驱动程序。
【问题讨论】:
{scrollable_cursors, off}.
根据 Erlang 文档ODBC is the way to go。
有一个 Erlang ODBC API,它“应该在包括 Linux 在内的所有 Unix 方言上运行......但目前它只针对 Solaris、Windows 2000、Windows XP 和 NT 进行了测试”。 Find out more.
有适用于 Linux 的 ODBC 驱动程序。如果你幸运的话,你的发行版已经安装了一个。 Find out more.
【讨论】:
==== 如果在 Windows 上,答案可能非常有用,但也可能包含对 Linux 有用的信息 =====
现在,首先,我们需要下载 oracle 客户端或oracle 数据库本身并从这里安装它:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html。 Oracle 安装并创建一个名为 oracle 的文件夹(在 Windows 上)。在这个文件夹中,您通常会找到它的 $HOME 文件夹:C:\oracle\product\10.2.0\db_1。因此,如果您在 Windows 上,当您通过阅读以下内容访问 ODBC 配置时:http://ozinisle.blogspot.com/2011/10/configuring-odbc-connection-for-oracle.html 然后您将创建一个您选择的新Data Source Name (DSN) 。大致步骤如下:
1.选择系统 DSN
2。创建新数据源
3。向下滚动以在 OraDB{Vsn}_home1
4 中选择 Oracle。指定用户名 (UID)、密码
5。记下您选择的驱动程序名称,记下您输入的数据源名称。
6.测试连接并确保 Windows 显示正常。
现在,在这之后,我们去 erlang 方面。看看这个模块,它应该让你开始与 oracle 沟通。
Erlang ODBC 服务器必须首先运行。 Erlang ODBC 将要求您提供连接字符串和选项。在选项中,首先请注意,大多数 Oracle 驱动程序都需要关闭这些可滚动游标。然后,在连接字符串中,您将需要输入有效的 UID(用户名)、密码、DSN(数据源名称)和驱动程序名称,所有这些都与您在上述步骤中在 Windows ODBC 连接中创建 DSN 的方式完全相同。
应该没问题。请注意,您应该坚持自己使用 oracle 驱动程序,并避免使用第三方 ODBC Oracle 驱动程序。我有使用其他第三方驱动程序的经验,因为在说 1000 万个连接之后,驱动程序开始要求钱/许可证并阻止您的流量到达 oracle DB。
让我知道以防万一任何挑战。上面的模块有点粗糙,不要按原样使用,因为它只是一个 shell 测试模块,否则你需要说一个 gen_server 来保存连接对象,以便其他处理保持与它通信。只要您在机器上成功设置了已安装 Oracle DB 或客户端的数据源名称,那么此模块将为您提供帮助,否则大多数挑战都在于设置 ODBC 连接。
=== Linux ===
对于 Linux,我想您需要获得像 Easy Soft ODBC Drivers 或 UnixODBC 这样的 odbc 库。然后尝试像我们在上面的 windows 中那样设置它,然后使用我上面提供的 Erlang 模块。它应该仍然有效。恐怕我总是从 Windows 而不是 Linux 连接到 oracle,因为在设置和配置 ODBC 库方面存在许多挑战(试一试,您可能会成功设置 Unix ODBC 或 Easy Soft ODBC 库),否则, Erlang部分整理出来了。
【讨论】: