如何使用perl访问具有不同版本(8i和9)的两个Oracle数据库?

时间:2010-12-15 11:59:21

标签: perl oracle dbi dbd

我目前正在使用perl模块DBI(1.613)和DBD :: Oracle(1.26)访问Oracle数据库版本9i(9.2.0.8.0)。该项目的当前范围现在要求我访问版本8i(8.1.7.4.0)Oracle数据库,并且根据DBD::Oracle project,我只能使用DBD :: Oracle版本1.20访问第二个数据库或下方。

我知道我可以使用DBD版本1.20来访问这两个数据库,但我想知道是否可以安装两个版本的DBD模块并为每个数据库使用可接受的版本(不易出错)。

3 个答案:

答案 0 :(得分:6)

我不认为服务器版本与您可以使用的DBD :: Oracle版本有任何关系,只有您安装的客户端库的版本。 Oracle客户端库的9.2,10.1和10.2版本支持连接到Oracle服务器8.1.7.4,最新版本的DBD :: Oracle仍然与9.2版本的所有客户端库兼容,所以我认为你不会实际上有任何问题。但是,如果安装版本11客户端,则将无法连接到9.2.0以下的服务器版本。

答案 1 :(得分:4)

将不同版本的DBI / DBD :: Oracle安装到两个不同的位置,请参阅INSTALL_BASE / --install_base。通过适当地设置PERL5LIB来单独访问它们。

local::lib可以帮助您实现整个事件的自动化。

答案 2 :(得分:3)

如果要从同一程序运行中访问两个数据库版本,可以执行以下操作:

  • 使用local::lib

  • 在您的系统中安装这两个版本
  • 运行DBD::Proxy服务器并将@LIB配置为加载一个版本的DBD :: Oracle

  • 运行您的脚本,@LIB配置为加载其他版本的DBD :: Oracle

  • 脚本中的
  • 像往常一样使用DBD :: Oracle连接到一个数据库,通过代理连接到另一个数据库。