Hi. I am trying to copy tables. I want to copy a table in one database to a
table in another database. The tables are identical. Here is to code and the
error when using DBI. Can I just use postgresQL somehow?
Thank you.
Table = fs648
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| day | text | var |
| type | text | var |
| flight | text | var |
| scene | text | var |
| pattern | int4 | 4 |
| leg | text | var |
| id | int4 not null | 4 |
+----------------------------------+----------------------------------+-------+
#!/usr/bin/perl -wT
use strict;
use DBI;
my $dbh = DBI->connect("dbi:Pg:dbname=misr_l1;
host=sundog.larc.nasa.gov;port=5432", "", "")
or die "Can't connect\n"; #connect to database
my $sth = $dbh->prepare("SELECT * from fs648");
$sth->execute();
my $array_ref = $sth->fetchall_arrayref();
$sth->finish;
$dbh->disconnect or warn "Disconnection failed\n";
$dbh = DBI->connect("dbi:Pg:dbname=misr_l0;
host=sundog.larc.nasa.gov;port=5432", "", "")
or die "Can't connect\n"; #connect to database
foreach my $row ($array_ref)
{ my ($day, $type, $flight, $scene, $pattern, $leg, $id) = @$row;
my $dayq = $dbh->quote($day);
my $typeq = $dbh->quote($type);
my $flightq = $dbh->quote($flight);
my $sceneq = $dbh->quote($scene);
my $legq = $dbh->quote($leg);
my $rows = $dbh->do("INSERT INTO fs648 VALUES ( $dayq, $typeq,
$flightq, $sceneq, $pattern, $legq, $id)");
}
$dbh->disconnect or warn "Disconnection failed\n";
DBD::Pg::db do failed: ERROR: parser: parse error at or near "xe1154"
$pattern and $id are integers and so don't need quoting. It doesn't work if I
quote them anyway.
Thanks again!
Bob Kernell
Research Scientist
Analytical Services & Materials, Inc.
NASA Atmospheric Sciences Competency
Radiation and Aerolsols Branch
email: r.w.kernell@larc.nasa.gov
tel: 757-827-4631