[SP-pm] DBI Metodo Connect
Marcos Carmello
mcarmello em gmail.com
Quarta Abril 23 14:03:01 PDT 2008
Boas Monges!
Estou tentando fazer uma conexão Perl->Oracle e estou quaaaaaaase
conseguindo... se não fose pelo "quase" =]
Consegui instalar o DBI, DBD::Oracle sem maiores "problemas" graças a outras
mensagens da lista.
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.
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.
Abaixo o código que estou utilizando:
<code>
#!/usr/bin/perl
use warnings; # IMPORTANTE: ajuda para novatos.
use strict; # MAIS IMPORTANTE: sanidade mental para todas as idades.
use Data::Dumper; # Para imprimir os dados sem muito trabalho
use DBI; # Indispensável para acessar bases de dados ;-)
# Esta linha REQUER que você tenha instalado com sucesso o módulo
DBD::Oracle.
my $dbh = DBI->connect( 'dbi:Oracle:database', 'usuario', 'senha' );
die $dbh->errstr unless $dbh; # isto é tratamento de erro, do mais simples.
my $statement;
eval {
my $query = q{SELECT * FROM USER_TABLES};
$statement = $dbh->prepare( $query );
$statement->execute;
};
die if $@; # isto é tratamento de erro, dos mais simples, de novo.
eval { # Use eval() aqui para prevenir falhas durante a leitura dos dados.
# usa um Oracle Cursor, percorre o DataSet devolvido pela query.
while( my $row = $statement->fetchrow_hashref ) {
# Aqui você pode fazer alguma coisa com os seus dados.
# imprimir, por exemplo:
print Dumper( $row ), $;
}
};
die if $@; # tratamento de erros
eval {
$statement->finish; # Desaloque os recursos usados.
$dbh->disconnect; # Seja explícito, ou o Oracle te morde!
};
die if $@; # tratamento de erros, não esquece!
__END__
</code>
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.
Estou utilizando Debian e meu client Oracle já está instalado e funcionando
(faço conexão com o PHP e tudo ok).
Grato,
--
Marcos Carmello
mcarmello em gmail.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080423/6c4fb121/attachment.html
Mais detalhes sobre a lista de discussão SaoPaulo-pm