On Monday 17 Sep 2007, Crosbourne, Rainaldo wrote:
> Hey guys
>
>
>
> I am trying to query a table using a database link, using the following
> code:
>
>
>
> use strict;
>
>
>
> use DBI;
>
>
>
> my $col_value = 'test';
>
> my $query = 'select col_1,col_2,col_3 from [EMAIL PROTECTED] where
> col_1 = ?';
>
>
>
> my $dbh = DBI ->connect ('dbi:Oracle:dbs','username','password',{
> RaiseError => 1, AutoCommit => 0 }) || die "Database connetion not made:
> $DBI::errstr";
>
>
>
> my $sth = $dbh->prepare ($query)|| die "Unable to prepare\n";
>
>
>
> $sth->execute($col_value) or die "Can't execute SQL statement:
> $DBI::errstr Stopped\n";
>
> my ($col_1,$col_2,$col_3);
>
>
>
> $sth->bind_columns(\($col_1,$col_2,$col_3))||die "Unable to fetch\n";
>
>
>
> print "$col_1: $col_2 :$col_3\n" while $sth1->fetchrow_arrayref;
>
>
>
> $dbh->disconnect;
>
>
>
> Now what happens is that, the first time this program is run, it returns
> the correct result. However after the first successful run it fails to
> run again. It gives NO error, it just fails to return the rows. If a
> create a new link and use the new link in the query, it then works for
> the first run, and then fails after. The same thing happens if I decide
> to query a view that was created using the link.

A thought. Are you using persistent perl or perhaps Apache's mod_Perl?

Because if you are, then variables will stay in the same state they were in 
when the previous run ended rather than being re-initialised when you re-run 
(unless you explicitly initialise them)

It sounds like the kind of "gotcha" I've had trouble with in the past using 
persistent perl.



-- 
Tony Green
Ipswich, Suffolk, England
http://www.beermad.org.uk
http://no2id-ip.web-brewer.co.uk

Reply via email to