Thread: Postgresql Copy

Postgresql Copy

From
"samsom, debra"
Date:

Is there away to copy fixed length text files into an Postgresql table.   After reading the doc's it looks Postgresql expects some sort of delimiter.

Re: Postgresql Copy

From
Andrew Gould
Date:
I think that is correct.  If I'm wrong, I'm sure I'll
be corrected.

I import fixed width data using one of two methods:

1.  I import the data into MS Access, which can deal
with fixed width data; and then I move the data to
PostgreSQL via ODBC connection.

2.  There's a huge fixed width file that I receive
every quarter.  Since the structure is the same, I
wrote a python script that copies the data to a new
file, inserting tab delimiters and stripping out the
extra spaces as it goes.  The resulting file is often
one third the size of the original.  I then use copy
to import the tab delimited data into PostgreSQL.

If you'd like me to send the python script, let me
know.  Basically, you'll have to adjust the file to
fit your data table's definition.  (Or send me the
definition of one table and I'll adjust it this once.)
 In any case, the original file is left unchanged
should anything go wrong.

Best of luck,

Andrew Gould



--- "samsom, debra" <dsamsom@bristol.ca> wrote:
> Is there away to copy fixed length text files into
> an Postgresql table.
> After reading the doc's it looks Postgresql expects
> some sort of delimiter.
>


__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com

Re: Postgresql Copy

From
Jason Earl
Date:
Yeah, that's what I do as well.  With just a little
bit of work you can make this sort of thing really
easy to do.  The trick is to create a script (I
generally use Python as well, but Perl is good too)
that reads from stdin and writes to stdout and that
looks like what pg_dump spits out (which is very
trivial).  That way you can use it like this:

cat my_file | custom_filter | psql -e my_database

making it easy to automate.

Jason

--- Andrew Gould <andrewgould@yahoo.com> wrote:
> I think that is correct.  If I'm wrong, I'm sure
> I'll
> be corrected.
>
> I import fixed width data using one of two methods:
>
> 1.  I import the data into MS Access, which can deal
> with fixed width data; and then I move the data to
> PostgreSQL via ODBC connection.
>
> 2.  There's a huge fixed width file that I receive
> every quarter.  Since the structure is the same, I
> wrote a python script that copies the data to a new
> file, inserting tab delimiters and stripping out the
> extra spaces as it goes.  The resulting file is
> often
> one third the size of the original.  I then use copy
> to import the tab delimited data into PostgreSQL.
>
> If you'd like me to send the python script, let me
> know.  Basically, you'll have to adjust the file to
> fit your data table's definition.  (Or send me the
> definition of one table and I'll adjust it this
> once.)
>  In any case, the original file is left unchanged
> should anything go wrong.
>
> Best of luck,
>
> Andrew Gould
>
>
>
> --- "samsom, debra" <dsamsom@bristol.ca> wrote:
> > Is there away to copy fixed length text files into
> > an Postgresql table.
> > After reading the doc's it looks Postgresql
> expects
> > some sort of delimiter.
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Make a great connection at Yahoo! Personals.
> http://personals.yahoo.com
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: you can get off all lists at once with the
> unregister command
>     (send "unregister YourEmailAddressHere" to
majordomo@postgresql.org)


__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com

Re: Postgresql Copy

From
"Roderick A. Anderson"
Date:
On Wed, 31 Oct 2001, Andrew Gould wrote:

> 2.  There's a huge fixed width file that I receive
> every quarter.  Since the structure is the same, I
> wrote a python script that copies the data to a new
> file, inserting tab delimiters and stripping out the
> extra spaces as it goes.  The resulting file is often
> one third the size of the original.  I then use copy
> to import the tab delimited data into PostgreSQL.

I've done the same thing using perl.  In fact I have actually just
read, parsed, and then inserted the data directly into PostgreSQL.


Cheers,
Rod
--
                      Let Accuracy Triumph Over Victory

                                                       Zetetic Institute
                                                        "David's Sling"
                                                         Marc Stiegler