Boas Monges!<br><br>Estou tentando fazer uma conexão Perl-&gt;Oracle e estou quaaaaaaase conseguindo... se não fose pelo &quot;quase&quot; =]<br><br>Consegui instalar o DBI, DBD::Oracle sem maiores &quot;problemas&quot; graças a outras mensagens da lista.<br>
<br>Seguindo informações que coletei também na lista, montei um arquivo simples para testar a conexão, no entanto um erro persiste: Can&#39;t locate object method &quot;connect&quot; via package &quot;DBI&quot; (perhaps you forgot to load &quot;DBI&quot;?) at test.pl line 8.<br>
<br>Está ali o comentário da linha: (# Esta linha REQUER que você tenha instalado com sucesso o módulo DBD::Oracle.) E sim, eu consegui instalar, inclusive antes de eu instalar tudo dava erro na linha use DBI.<br><br>Abaixo o código que estou utilizando:<br>
<br>&lt;code&gt;<br>#!/usr/bin/perl<br>use warnings;&nbsp;&nbsp;&nbsp;&nbsp; # IMPORTANTE: ajuda para novatos.<br>use strict;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # MAIS IMPORTANTE: sanidade mental para todas as idades.<br>use Data::Dumper; # Para imprimir os dados sem muito trabalho<br>
use DBI;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Indispensável para acessar bases de dados ;-)<br><br># Esta linha REQUER que você tenha instalado com sucesso o módulo DBD::Oracle.<br>my $dbh = DBI-&gt;connect( &#39;dbi:Oracle:database&#39;, &#39;usuario&#39;, &#39;senha&#39; );<br>
die $dbh-&gt;errstr unless $dbh; # isto é tratamento de erro, do mais simples.<br><br>my $statement;<br>eval {<br>&nbsp;&nbsp; my $query = q{SELECT * FROM USER_TABLES};<br>&nbsp;&nbsp; $statement = $dbh-&gt;prepare( $query );<br>&nbsp;&nbsp; $statement-&gt;execute;<br>
};<br>die if $@; # isto é tratamento de erro, dos mais simples, de novo.<br><br>eval { # Use eval() aqui para prevenir falhas durante a leitura dos dados.<br>&nbsp;&nbsp;&nbsp; # usa um Oracle Cursor, percorre o DataSet devolvido pela query.<br>
&nbsp;&nbsp;&nbsp; while( my $row = $statement-&gt;fetchrow_hashref ) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Aqui você pode fazer alguma coisa com os seus dados.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # imprimir, por exemplo:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print Dumper( $row ), $;<br>&nbsp;&nbsp;&nbsp; }<br>};<br>die if $@; # tratamento de erros<br>
<br>eval {<br>&nbsp;&nbsp;&nbsp; $statement-&gt;finish; # Desaloque os recursos usados.<br>&nbsp;&nbsp;&nbsp; $dbh-&gt;disconnect;&nbsp;&nbsp; # Seja explícito, ou o Oracle te morde!<br>};<br>die if $@; # tratamento de erros, não esquece!<br>__END__<br>&lt;/code&gt;<br clear="all">
<br>Durante o processo de instalação do DBI e DBD::Oracle tive problemas na instalação sempre na linha do DBI que declarava &quot;DBI 1.52&quot;. Entendi que referia-se a versão e fui no cpan verficar com o comando $DBI::VERSION que sempre me retorna vazio.<br>
<br>Estou utilizando Debian e meu client Oracle já está instalado e funcionando (faço conexão com o PHP e tudo ok).<br><br>Grato,<br><br>-- <br>Marcos Carmello<br><a href="mailto:mcarmello@gmail.com">mcarmello@gmail.com</a>