Re: Need help with COPY - Mailing list pgsql-general

From will trillich
Subject Re: Need help with COPY
Date
Msg-id 20010616154645.A14950@serensoft.com
Whole thread Raw
In response to Re: Need help with COPY  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-general
On Sat, Jun 16, 2001 at 02:46:26PM +0200, Peter Eisentraut wrote:
> Jonathan Hseu writes:
>
> > I want to import a table from a file.  The format of the table in the file is as
> > such:
> > "FName","LName","Address","City"
> >
> > The format of the table is:
> > (FName varchar(80), LName varchar(80), Address varchar(80), City varchar(80))
> >
> > I want to do a:
> > COPY table FROM 'filename' USING DELIMITERS ','
> >
> > The problem is, it also imports the quotes.  Also, there are sometimes commas in
> > the address, and it takes those as delimiters.  Is there any way to make it take
> > only the stuff within the quotes and ignore any delimiters within them?
>
> You need to reformat your input files (strip quotes and use different
> delimiter) or not use the COPY command.

or -- if ALL fields are quoted (none are barewords) -- then just
use PERL (the "swiss army chainsaw" of text mungers) to
translate:

    #!/usr/bin/perl
    # note: untested, might possibly reformat your disk--
    while( <> ) {
        chomp;
        print join "\t", eval qq:($_): ; # note () INSIDE delimiters
        print "\n";
    }

run that via

    $ perl quick-csv-to-tab-fixer.pl < quoted-csv-file > tab-separated-file

then

    $ psql mydatabase
    > copy sometable from tab-separated-file ;

=====

or, for short,

    perl -pe "$_=join qq(\t),eval qq'($_)' ; $_.=qq(\n)" \
        < csv-file \
        > tab-file

--
I figure: if a man's gonna gamble, may as well do it
without plowing.   -- Bama Dillert, "Some Came Running"

will@serensoft.com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!

pgsql-general by date:

Previous
From: teg@redhat.com (Trond Eivind Glomsrød)
Date:
Subject: Re: Unable to --rebuild postgresql-7.1.2-4PGDG.src.rpm
Next
From: will trillich
Date:
Subject: 7.0.3 select/join syntax?