Thread: psql command line question..

psql command line question..

From
"Williams, Travis L, NPONS"
Date:
I have a bunch of huge inserts in a flat file.  They are in proper sql context and I can take each individual and
copy/pasteit into psql and it inserts fine.  I tried doing a psql -e dbname < file.sql and I get errors.  Is there
anythingspecific I need to do to the file format?  Each query is on its own new line.  I didn't know if I should add a
semicolonto the end so I did just to check it.. but it doesn't seem to make a difference.  I tried doing this through
DBD::Pgbut it seems to complain about an extra apostrophe that doesn't exist (which psql did until I quite quoting my
numerics). I noticed in Bruces readme that it said that psql would do this sometimes if you have to many apostrophes..
doesthis also affect DBD::Pg? 


Travis

Re: psql command line question..

From
Christoph Dalitz
Date:
> Date: Tue, 28 Jan 2003 23:53:49 -0500
> From: "Williams, Travis L, NPONS" <tlw@att.com>
>
> I have a bunch of huge inserts in a flat file.
> They are in proper sql context and I can take each individual and copy/paste
> it into psql and it inserts fine.  I tried doing a psql -e dbname < file.sql
> and I get errors.  Is there anything specific I need to do to the file format?
>
I have observed very strange behaviour with psql when the input data contains
TAB characters. Maybe that's your problem too.

Replacing nonprintable characters with blanks is somewhat tricky, but possible
with sed:

    # 0B is the hex code for TAB
    char2replace="`echo -e \x0B`"
    sed "s/$char2replace/ /g" ...

Hope this helps,

Christoph Dalitz

Re: psql command line question..

From
Jean-Luc Lachance
Date:
Well, I am always amazed by the detour people will take...
Try:

tr '\011' ' '

Use tr for all character based translation.

By the way the TAB character is CTRL-I or x09 or 011 (octal) not x0B.


Christoph Dalitz wrote:
>
> > Date: Tue, 28 Jan 2003 23:53:49 -0500
> > From: "Williams, Travis L, NPONS" <tlw@att.com>
> >
> > I have a bunch of huge inserts in a flat file.
> > They are in proper sql context and I can take each individual and copy/paste
> > it into psql and it inserts fine.  I tried doing a psql -e dbname < file.sql
> > and I get errors.  Is there anything specific I need to do to the file format?
> >
> I have observed very strange behaviour with psql when the input data contains
> TAB characters. Maybe that's your problem too.
>
> Replacing nonprintable characters with blanks is somewhat tricky, but possible
> with sed:
>
>         # 0B is the hex code for TAB
>         char2replace="`echo -e \x0B`"
>         sed "s/$char2replace/ /g" ...
>
> Hope this helps,
>
> Christoph Dalitz
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html

Re: psql command line question..

From
Neil Conway
Date:
On Tue, 2003-01-28 at 23:53, Williams, Travis L, NPONS wrote:
> I have a bunch of huge inserts in a flat file.  They are in proper sql
> context and I can take each individual and copy/paste it into psql and
> it inserts fine.  I tried doing a psql -e dbname < file.sql and I get
> errors.

Which errors, exactly? Also, can you give us a sample of the file's
contents?

Cheers,

Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC




Re: psql command line question..

From
"Williams, Travis L, NPONS"
Date:
I found the problem.. I was searching through the archive because what I
am doing is getting a bcp dump from a SQL server.  It was full of nulls
and that was the problem.. I noticed if I VI'd the file then resaved it
everything was okay.. so basically I added the -k option for bcp and am
now doing a tr '\000' ' '  (well basically that.. as I'm doing it in
perl).. and everything is OK..  Thanks for the help though..

Travis

-----Original Message-----
From: Jean-Luc Lachance [mailto:jllachan@nsd.ca]
Sent: Wednesday, January 29, 2003 11:01 AM
To: Christoph Dalitz
Cc: Williams, Travis L, NPONS; pgsql-general@postgresql.org
Subject: Re: [GENERAL] psql command line question..


Well, I am always amazed by the detour people will take...
Try:

tr '\011' ' '

Use tr for all character based translation.

By the way the TAB character is CTRL-I or x09 or 011 (octal) not x0B.


Christoph Dalitz wrote:
>
> > Date: Tue, 28 Jan 2003 23:53:49 -0500
> > From: "Williams, Travis L, NPONS" <tlw@att.com>
> >
> > I have a bunch of huge inserts in a flat file.
> > They are in proper sql context and I can take each individual and
copy/paste
> > it into psql and it inserts fine.  I tried doing a psql -e dbname <
file.sql
> > and I get errors.  Is there anything specific I need to do to the
file format?
> >
> I have observed very strange behaviour with psql when the input data
contains
> TAB characters. Maybe that's your problem too.
>
> Replacing nonprintable characters with blanks is somewhat tricky, but
possible
> with sed:
>
>         # 0B is the hex code for TAB
>         char2replace="`echo -e \x0B`"
>         sed "s/$char2replace/ /g" ...
>
> Hope this helps,
>
> Christoph Dalitz
>
> ---------------------------(end of
broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html