in reply to DBD:Pg pg_putcopydata

Here is a quick hack of a working example:

#!/usr/bin/perl use strict; use warnings; use DBI; my $dbname = 'testdb'; my $server = 'localhost'; my $user = 'user'; my $pass = 'pass'; my $dbh = DBI->connect( "DBI:Pg:dbname=".$dbname.";host=".$server, $user, $pass ); # The \n at the end of each row is required my @ArrayInMemory = ( "1/value 12/value 13\n", "2/value 22/value 23\n", "3/value 32/value 33\n", ); $dbh->do("COPY testcp (col1, col2, col3) FROM STDIN WITH DELIMITER '/' +"); foreach my $row (@ArrayInMemory) { # Alternative if the array elements doesn't contain \n # $row .= "\n"; $dbh->pg_putcopydata($row); } $dbh->pg_putcopyend();

Regards, Stefan

Replies are listed 'Best First'.
Re^2: DBD:Pg pg_putcopydata
by Anonymous Monk on Jun 30, 2010 at 17:58 UTC

    Many Thanks, Stefan!

    In particular, thank you for pointing out the requirement for the newline character.

    One of the things I love about Perl is having many ways to do the same thing. It can be frustrating for the inexperienced, but it can also be very rewarding.

    If anyone has a working alternative to our foreach loop method, I would encourage you to share. I love seeing how different programmers approach a simple problem in different fashion.