copying tables - Mailing list pgsql-novice

From Robert Kernell
Subject copying tables
Date
Msg-id 200102201551.KAA02865@sundog.larc.nasa.gov
Whole thread Raw
Responses Re: copying tables
List pgsql-novice
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

pgsql-novice by date:

Previous
From: ksprague@NRCan.gc.ca
Date:
Subject: 7.0.3 OK on solaris 2.8
Next
From: Richard Ehrlich
Date:
Subject: Printing PostgreSQL reports