Boas Monges!<br><br>Estou tentando fazer uma conexão Perl->Oracle e estou quaaaaaaase conseguindo... se não fose pelo "quase" =]<br><br>Consegui instalar o DBI, DBD::Oracle sem maiores "problemas" 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't
locate object method "connect" via package "DBI" (perhaps you forgot to
load "DBI"?) 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><code><br>#!/usr/bin/perl<br>use warnings; # IMPORTANTE: ajuda para novatos.<br>use strict; # MAIS IMPORTANTE: sanidade mental para todas as idades.<br>use Data::Dumper; # Para imprimir os dados sem muito trabalho<br>
use DBI; # 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->connect( 'dbi:Oracle:database', 'usuario', 'senha' );<br>
die $dbh->errstr unless $dbh; # isto é tratamento de erro, do mais simples.<br><br>my $statement;<br>eval {<br> my $query = q{SELECT * FROM USER_TABLES};<br> $statement = $dbh->prepare( $query );<br> $statement->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> # usa um Oracle Cursor, percorre o DataSet devolvido pela query.<br>
while( my $row = $statement->fetchrow_hashref ) {<br> # Aqui você pode fazer alguma coisa com os seus dados.<br> # imprimir, por exemplo:<br> print Dumper( $row ), $;<br> }<br>};<br>die if $@; # tratamento de erros<br>
<br>eval {<br> $statement->finish; # Desaloque os recursos usados.<br> $dbh->disconnect; # Seja explícito, ou o Oracle te morde!<br>};<br>die if $@; # tratamento de erros, não esquece!<br>__END__<br></code><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 "DBI
1.52". 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 clear="all"><br>-- <br>Marcos Carmello<br><a href="mailto:mcarmello@gmail.com">mcarmello@gmail.com</a>