0) Instalar el módulo DBD::Pg en Debian:
#apt-get install libdbd-pg-perl
1) Comprobar que el modulo DBD::Pg está correctament instalado, accediendo a una bsas de datos psql:
#!/usr/bin/perl
use DBI;
my $VAR01 = DBI->connect("dbi:Pg:databasename",'user','password');
my $VAR02 = $VAR01->disconnect();
-Si sale algun error es que no esta correctamente instalado el módulo perl-
1) Conexion a una BDD psql desde perl:
use DBI; # módulos que vamos a usar
use DBD::Pg; # esto no haría falta
my $DBI = DBI->connect("dbi:Pg:dbname=nombredelabasededatos");
my $dbh = DBI->connect("dbi:Pg:dbname=template1", 'nombreusuario', 'clave');
2) Extraer tuplas con perl de una BDD psql:
Usando los ciclos de preparacion, ejecución y extracción de datos.
#!/usr/bin/perl
use DBI;
use strict;
use strict;
my $dbh = DBI->connect("dbi:Pg:dbname=ipuniverse",'USER');
$dbh->{RaiseError} => 1; #ref
my $sth = $dbh->prepare("SELECT * FROM scann2 WHERE scann2.px='O' AND scann2.yy='0' LIMIT 1");
$dbh->{RaiseError} => 1; #ref
my $sth = $dbh->prepare("SELECT * FROM scann2 WHERE scann2.px='O' AND scann2.yy='0' LIMIT 1");
$sth->execute;
my @row;
@row = $sth->;fetchrow_array or die "No match for query";
my $var1 = $row[0];
my $var2 = $row[1];
my $var3 = $row[2];
my $var4 = $row[3];
print "$row[0] $row[1] $row[2] $row[3]\n";
print "$var1 $var2 $var3 $var4\n";
$sth->finish;
$dbh->disconnect;
exit;
@row = $sth->;fetchrow_array or die "No match for query";
my $var1 = $row[0];
my $var2 = $row[1];
my $var3 = $row[2];
my $var4 = $row[3];
print "$row[0] $row[1] $row[2] $row[3]\n";
print "$var1 $var2 $var3 $var4\n";
$sth->finish;
$dbh->disconnect;
exit;
Con este script hemos extraido los registros de una tupla de una BDD de PostgreSQL y los hemos asignado a las varables en perl.
INSERTando segistros en PostgreSQL desde Perl:
Se recomienda usar el método secuencial de preparación y ejecución por motivos de rendimento especialmente si hay busquedas en la bdd.
También esta el método directo, prepare+execute todo en uno.
Un ejemplo de ambos métodos:
#!/usr/bin/perl
use DBI;
use strict;
INSERTando segistros en PostgreSQL desde Perl:
Se recomienda usar el método secuencial de preparación y ejecución por motivos de rendimento especialmente si hay busquedas en la bdd.
También esta el método directo, prepare+execute todo en uno.
Un ejemplo de ambos métodos:
#!/usr/bin/perl
use DBI;
use strict;
#conectamos con la BD
my $dbh = DBI->connect("dbi:Pg:dbname=ipuniverse",'USER');
$dbh->{RaiseError} => 1;
#metodo directo
$dbh->do("INSERT INTO table VALUES ('valores','$variables')");
#método secuencial
my $sth = $dbh->prepare("UPDATE table SET campo1='valor o variable' WHERE campo2='valor o variable'");
$sth->execute;
$sth->finish;
$dbh->disconnect;
REF:
http://www.arsys.info/programacion/bases-de-datos/perl-y-dbi/$dbh->{RaiseError} => 1;
#metodo directo
$dbh->do("INSERT INTO table VALUES ('valores','$variables')");
#método secuencial
my $sth = $dbh->prepare("UPDATE table SET campo1='valor o variable' WHERE campo2='valor o variable'");
$sth->execute;
$sth->finish;
$dbh->disconnect;
REF:
http://flanagan.ugr.es/dbi/manual.htm
http://geneura.ugr.es/~jmerelo/tutoriales/bd-sql/
Ejemplos de instrucciones perl-postgresql:
http://linuxbloggers.org/create-insert-select-update-perl-script-and-postgresql-database-examples/
Tutorial PSQL desde Perl:
http://www.felixgers.de/teaching/perl/perl_DBI.html
No hay comentarios:
Publicar un comentario