помочь получить вывод из кода Perl DBI - PullRequest
1 голос
/ 15 июля 2011

Я учусь использовать perl с dbi для Oracle.Я просто пытаюсь проверить вывод, но не могу распечатать результат из этого простого выбора.

Буду признателен, если кто-нибудь поможет мне разобраться в этом или даже покажет мне лучший способ написать это.Спасибо.

use strict;
use File::Basename;
use DBI;
use Time::localtime;
use POSIX qw/uname/;

use vars qw/$dbh $scr $computer_name/;
$scr = basename($0, '');
$computer_name = (uname())[1];

 $dbh = DBI->connect('dbi:Oracle:testdb', 'test', 'test', 
                    {RaiseError => 0, PrintError => 0, AutoCommit => 0}) ||
       die "$scr: connect error on $computer_name [$DBI::errstr]";

my $out = get_val();
print "The date is $out\n";
$dbh->disconnect;

sub get_val
{
  my $sth = $dbh->prepare(q{
        SELECT sysdate 
        FROM   dual}) ||
      die "$scr: prepare error on $computer_name [$DBI::errstr]";
  $sth->execute;
  my $row = $sth->fetchrow_hashref;
  $sth->finish;
  return $row->{VALUE};
   }

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Ключами в хэше, возвращаемом fetchrow_hashref, являются имена столбцов.Вы получаете ключ 'VALUE' из возвращенного хеш-значения, который не является столбцом в вашем запросе.

0 голосов
/ 15 июля 2011

fetchrow_hashref () возвращает каждый столбец в качестве ключа в хэше.Оператор возврата должен быть:

return $row->{sysdate};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...