我目前正在使用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模块并为每个数据库使用可接受的版本(不易出错)。
答案 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)
如果要从同一程序运行中访问两个数据库版本,可以执行以下操作:
运行DBD::Proxy服务器并将@LIB
配置为加载一个版本的DBD :: Oracle
运行您的脚本,@LIB
配置为加载其他版本的DBD :: Oracle
像往常一样使用DBD :: Oracle连接到一个数据库,通过代理连接到另一个数据库。