我的程序已经运行,我有Perl(GUI窗口),我可以输入数据,传递到网页的数据(使用到Tomcat服务器,JSP),然后保存它到oracle数据库。我想要的是使用Perl CGI从Oracle数据库中创建检索/提取数据的搜索参数(webapp)。可能吗?或者任何解决我的计划的建议?感谢: - - !)
答案 0 :(得分:5)
是的,您可以使用DBI和DBD::Oracle模块。
然而,Oracle存在一些问题。我记得Oracle 8的一些有趣和游戏因此可能不再适用但它确实需要设置ENV变量,如ORACLE_HOME,ORACLE_BASE&在某些情况下ORACLE_SID。
DBD :: Oracle doc确实进入了这个,并且还提到了另一个ENV变量TWO_TASK。让它发挥作用可能取决于....
似乎令人生畏,但你可能需要的只是在网络服务器中添加这些ENV变量(iPlanet就是我当时使用的)。或者从DBD :: Oracle doc中提供......
BEGIN {
$ENV{ORACLE_HOME} = '/home/oracle/product/10.x.x';
$ENV{TWO_TASK} = 'DB';
}
$dbh = DBI->connect('dbi:Oracle:','scott', 'tiger');
# - or -
$dbh = DBI->connect('dbi:Oracle:','scott/tiger');
PS。以上假设您在与Oracle相同的服务器上运行CGI脚本!如果没有,那么这些ENV变量是多余的,你可以这样做(从我的旧脚本中提取出来!)......
my $db = DBI->connect("dbi:Oracle:host=$host;sid=$database", $user, $pass,
{ RaiseError => 0, PrintError => 0 } )
or croak( "Unable to connect to DB - $DBI::errstr" );
但是我确实记得要在Oracle服务器上调整类似TNLISTENER.CONF的东西(这是几年前因为内存让我失望了一些!)而且我很确定你需要下载一些客户端Oracle库(你在哪里)可以从他们的网站获得。)
答案 1 :(得分:2)
混合技术的具体原因是什么?为什么不使用servlet / JSP?
如果必须使用Perl,则需要选择运行Perl脚本的Web服务器。
通常,这将是Apache使用mod_perl。
但是如果您只打算将其用于一些管理脚本,那么您可以按照here概述从tomcat运行Perl。
一旦你设法运行一个简单的perl脚本,那么我会考虑使用DBI/DBD::Oracle来访问你的数据库吗?
希望这会有所帮助......