Как я могу использовать сервер базы данных из сценария Perl CGI? - PullRequest
0 голосов
/ 19 ноября 2008

Моя программа уже работает, у меня есть Perl (окно GUI), где я могу вводить данные, данные, передаваемые на веб-страницу (используя сервер Tomcat, JSP), а затем сохраняет в базу данных Oracle. Я хочу сделать параметр поиска (webapp), который извлекает / извлекает данные из базы данных Oracle, используя Perl CGI. Является ли это возможным? Или есть предложения по решению моей программы? Спасибо!: -)

Ответы [ 2 ]

5 голосов
/ 19 ноября 2008

Да, вы можете использовать DBI и DBD :: Oracle .

Однако есть некоторые ошибки с Oracle. Я помню несколько забавных игр и игр с Oracle 8, поэтому они могут больше не применяться, но в некоторых случаях для этого требовалось установить переменные ENV, такие как ORACLE_HOME, ORACLE_BASE & ORACLE_SID.

В DBD :: Oracle doc упоминается еще одна переменная ENV TWO_TASK. Так что заставить его работать, может зависеть от ....

  • какая версия Oracle у вас установлена ​​
  • есть ли у вас прослушиватель (который, я думаю, вам нужен для доступа к сети, такой как CGI?)
  • какую версию SQL * Net вы используете.

Кажется пугающим, но все, что вам, вероятно, понадобится, это добавить эти переменные 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. Вышеприведенное предполагает, что вы запускаете скрипт CGI на том же сервере, что и Oracle! Если нет, то эти переменные 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" );

Однако я вспоминаю о необходимости настроить что-то вроде TNLISTENER.CONF на сервере Oracle (это было несколько лет назад, так что память немного меня подводит!), И я почти уверен, что вам нужно скачать клиентскую библиотеку Oracle (которую можно получить с их сайта).

2 голосов
/ 19 ноября 2008

Есть какая-то конкретная причина смешения в технологиях? Почему бы не использовать сервлет / JSP?

Если вам нужно использовать Perl, вам нужно выбрать, какой веб-сервер будет запускать ваш Perl-скрипт.

Обычно это Apache, использующий mod_perl .

Но если вы намереваетесь использовать это только для нескольких сценариев администратора, то вы можете запустить Perl из tomcat, как указано здесь .

После того, как вам удалось запустить простой Perl-скрипт, я хотел бы изучить использование DBI / DBD :: Oracle для доступа к вашей базе данных?

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...