通过 unixODBC 的 Oracle Instant Client DSN

通过 unixODBC 的 Oracle Instant Client DSN

我已经在 SuSE Web 服务器上安装了 Oracle Instant Client,并尝试通过 unixODBC 使用 PHP 连接到 Oracle 数据库。

连接似乎工作正常,发出 odbc_connect 后,我​​收到“odbc link”类型的响应。发出 odbc_prepare 后,我收到“odbc result”类型的响应。问题是,当我尝试发出 odbc_execute 命令时,我收到以下两个错误之一:

Warning: odbc_execute(): SQL error: [unixODBC][Oracle][ODBC][Ora]Driver not capable., SQL state S1C00 in SQLExecute

或者浏览器错误:

Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.

我也尝试在 odbc_connect 方法上指定 SQL_CUR_USE_ODBC,但是当我这样做时,脚本就会无限期挂起。

我想知道的是,我是否必须在 odbc.ini 或 odbcinst.ini 文件中为 DSN 指定一些选项?似乎没有太多关于可用选项或这些选项的作用的文档。

编辑

我确实通过 PDO 对象方法使连接正常工作(实际上没有改变任何东西,只是尝试使用 PDO 准备/执行方法)。但是,我仍然无法使用 odbc_prepare / odbc_execute 获得任何结果。这是我从“SELECT * FROM product_component_version”查询中获得的服务器信息:

[PRODUCT] => NLSRTL 
[VERSION] => 10.2.0.4.0
[STATUS] => Production

[PRODUCT] => Oracle Database 10g Enterprise Edition 
[VERSION] => 10.2.0.4.0
[STATUS] => 64bi

[PRODUCT] => PL/SQL 
[VERSION] => 10.2.0.4.0
[STATUS] => Production

[PRODUCT] => TNS for Solaris: 
[VERSION] => 10.2.0.4.0
[STATUS] => Production

相关内容