使用 unixODBC 连接到 Oracle 服务器

5 oracle unixodbc

我正在尝试配置我们的 Web 服务器 (RHEL 5.4 x86) 以使用 unixODBC 连接到 Oracle 数据库。我已经安装了 unixODBC-2.2.11-7.1.1,yum 告诉我是最新版本。我还安装了 Oracle InstantClient 11.2 和 Oracle InstantClient ODBC 库。

我已将所有 .so 文件符号链接/usr/lib/oracle/11.2/client/lib/usr/lib. 我已$LD_LIBRARY_PATH/usr/lib/$ORACLE_HOME/usr/lib/oracle$TNS_ADMIN包含我的(有效)tnsnames.ora文件的目录。这是我的/etc/odbcinst.ini文件的内容:

[Oracle]
Description = Oracle ODBC Connection
Driver = /usr/lib/libsqora.so.11.1
Setup =
FileUsage =
Run Code Online (Sandbox Code Playgroud)

和我的/etc/odbc.ini文件:

[Oracle]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName = //<host>:<port>/<db>
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
UserID =
Run Code Online (Sandbox Code Playgroud)

(ServerName 已被编辑...host、port 和 db 确实存在,并且正确)

当我跑步时,isql我得到

$ isql -v Oracle
isql: symbol lookup error: /usr/lib/libsqora.so.11.1: undefined symbol: SQLGetPrivateProfileStringW
Run Code Online (Sandbox Code Playgroud)

运行 dltest 给了我

$ dltest Oracle SQLConnect
[dltest] ERROR dlopen: Oracle: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果有人有任何见解,我将不胜感激,我一直试图让它连接大约 5 个小时......

我要回家过夜,但很乐意在明天早上向任何愿意提供帮助的人提供更多详细信息,如有必要...

DCo*_*kie 2

您可能想在 OTN 论坛中查看此讨论。相关讨论发生在帖子中大约 75%,这是用户 ardesai 发布的第二篇帖子。

  • 是的,在我的挣扎过程中肯定遇到了那个帖子。我最终让它工作起来,却发现 php 的 odbc 驱动程序在与 oracle odbc 连接一起使用时有一个错误。所以最后我放弃了,安装了 php-oci,然后就到此为止了...... (2认同)