如何使用 perl 访问两个不同版本(8i 和 9)的 Oracle 数据库?
我当前正在使用 Perl 模块 DBI (1.613) 和 DBD::Oracle (1.26) 访问 Oracle 数据库版本 9i (9.2.0.8.0)。该项目的当前范围现在要求我访问版本 8i (8.1.7.4.0 ) Oracle 数据库,并且根据 DBD::Oracle 项目,我只能使用 DBD::Oracle 版本 1.20 或更低版本访问第二个数据库。
我知道我可能使用 DBD 版本 1.20 来访问这两个数据库,但我想知道是否可以安装两个版本的 DBD 模块并为每个数据库使用可接受的版本(不太容易出错)。
I'm currently accessing an Oracle database version 9i (9.2.0.8.0) using perl modules DBI (1.613) and DBD::Oracle (1.26). The current scope of the project now requires that I access a version 8i (8.1.7.4.0 ) Oracle database and, according to the DBD::Oracle project, I can only access this second database with a DBD::Oracle version 1.20 or below.
I know I could possibly use the DBD version 1.20 to access both databases, but I was wondering if its possible to have installed the two versions of the DBD module and use the acceptable version for each database (less prone to errors).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不认为服务器版本与您可以使用的 DBD::Oracle 版本有任何关系,仅与您安装的客户端库版本有关。 Oracle 客户端库的 9.2、10.1 和 10.2 版本支持连接到 Oracle 服务器 8.1.7.4,并且最新版本的 DBD::Oracle 仍然与 9.2 及以上的所有客户端库兼容,因此我认为您不会实际上有任何问题。但是,如果您安装版本 11 客户端,您将无法连接到 9.2.0 以下的服务器版本。
I don't believe that the server version has any bearing on the DBD::Oracle version you can use, only the version of the client libraries that you install. The 9.2, 10.1, and 10.2 versions of the Oracle client libraries support connecting to Oracle server 8.1.7.4, and the latest version of DBD::Oracle remains compatible with all client libraries from 9.2 up, so I don't think that you will actually have any problem at all. However, if you install the version 11 client, you will lose the ability to connect to server versions below 9.2.0.
将不同版本的 DBI/DBD::Oracle 安装到两个不同的位置,请参阅
INSTALL_BASE
/
--install_base
。通过适当设置 PERL5LIB 来单独访问它们。local::lib 帮助您自动化整个过程。
Install the different versions of DBI/DBD::Oracle into two different places, see
INSTALL_BASE
/--install_base
. Access them seperately by setting PERL5LIB appropriately.local::lib helps you automate this whole affair.
如果您想从同一程序运行访问两个数据库版本,您可以执行以下操作:
使用 local::lib
使用
运行 DBD::Proxy 服务器@LIB
配置为加载一个版本的 DBD::Oracle运行您的脚本,配置了
@LIB
来加载另一个版本的DBD ::Oracle在脚本中照常使用 DBD::Oracle 连接到一个数据库并另一个通过代理。
If you want to access the two database versions from the same program run you can do as follows:
install both versions in your system using local::lib
run a DBD::Proxy server with
@LIB
configured to load one version of DBD::Oraclerun your script with
@LIB
configured to load the other version of DBD::Oraclein your script connect to one database using DBD::Oracle as usual and to the other one through the proxy.