Postgresql and scripting

Started by Jerome Lylesover 21 years ago8 messagesgeneral
Jump to latest
#1Jerome Lyles
susemail@hawaii.rr.com

I'm trying to create and populate some study tables using a couple of scripts
that came with my 'SQL in 10 minutes' book. This is how I tried to run the
script to create and populate tables in a database named test:

test-# \i create.txt
psql:create.txt:1: ERROR: syntax error at or near "" at character 1

Here is the top of the script:
------------------------------------------------------------
- - S a m s T e a c h Y o u r s e l f S Q L i n 1 0 M i n u t e
s

- - h t t p : / / w w w . f o r t a . c o m / b o o k s / 0 6 7 2 3 2 5 6 6
7 /

- - E x a m p l e t a b l e c r e a t i o n s c r i p t s f o r Po
s t g r e S Q L .

------------------------------------------------------------

- - - - - - - - - - - - - - - - - - - - - - - - -

- - C r e a t e C u s t o m e r s t a b l e

- - - - - - - - - - - - - - - - - - - - - - - - -

C R E A T E T A B L E C u s t o m e r s

(

c u s t _ i d c h a r ( 1 0 ) N O T N U L L ,

c u s t _ n a m e c h a r ( 5 0 ) N O T N U L L ,

c u s t _ a d d r e s s c h a r ( 5 0 ) ,

c u s t _ c i t y c h a r ( 5 0 ) ,

c u s t _ s t a t e c h a r ( 5 ) ,

c u s t _ z i p c h a r ( 1 0 ) ,

c u s t _ c o u n t r y c h a r ( 5 0 ) ,

c u s t _ c o n t a c t c h a r ( 5 0 ) ,

c u s t _ e m a i l c h a r ( 2 5 5 )

) ;

Can someone tell me what's going wrong here, why am I getting this error
message?
Thanks,
Jerome

#2Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: Jerome Lyles (#1)
Re: Postgresql and scripting

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

On Tue, 7 Sep 2004, Jerome Lyles wrote:

I'm trying to create and populate some study tables using a couple of scripts
that came with my 'SQL in 10 minutes' book. This is how I tried to run the
script to create and populate tables in a database named test:

test-# \i create.txt
psql:create.txt:1: ERROR: syntax error at or near "" at character 1

Here is the top of the script:
------------------------------------------------------------
- - S a m s T e a c h Y o u r s e l f S Q L i n 1 0 M i n u t e
s

The single dash must be --. PostgreSQL treats -- as the comment lines.
i.e.:

- --------------
- -- Sams Teach ...
- --

Anyway, IMHO you should directly begin with the following line:

CREATE TABLE customers

...

The lines above this one are useless comments.

Regards,
- --
Devrim GUNDUZ
devrim~gunduz.org devrim.gunduz~linux.org.tr
http://www.tdmsoft.com
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBPZxKtl86P3SPfQ4RAgMbAJ9m3zTRnZiKtlmn0LI3MgjMDP/CdACeJ2rp
fR/DMnCjNbPLEsSDIampUJk=
=OexA
-----END PGP SIGNATURE-----

#3John DeSoi
jd@icx.net
In reply to: Jerome Lyles (#1)
Re: Postgresql and scripting

On Sep 7, 2004, at 7:24 AM, Jerome Lyles wrote:

test-# \i create.txt
psql:create.txt:1: ERROR: syntax error at or near "" at character 1

Here is the top of the script:
------------------------------------------------------------
- - S a m s T e a c h Y o u r s e l f S Q L i n 1 0 M i
n u t e

It seems that your file might be in unicode (utf-16) since it appears
there is whitespace after every character. Check your editor settings
and resave the file.

Best,

John DeSoi, Ph.D.

#4Jerome Lyles
susemail@hawaii.rr.com
In reply to: John DeSoi (#3)
Re: Postgresql and scripting

On Tuesday 07 September 2004 01:50 am, John DeSoi wrote:

On Sep 7, 2004, at 7:24 AM, Jerome Lyles wrote:

test-# \i create.txt
psql:create.txt:1: ERROR: syntax error at or near "" at character 1

Here is the top of the script:
------------------------------------------------------------
- - S a m s T e a c h Y o u r s e l f S Q L i n 1 0 M i
n u t e

It seems that your file might be in unicode (utf-16) since it appears
there is whitespace after every character. Check your editor settings
and resave the file.

Best,

John DeSoi, Ph.D.

Right now it's in unicode (utf-8), switching between utf 8 and sixteen has no
effect on the spaces between letters. Tried iso 8859-1 and iso 8859-15 but
the editor window was empty for these encodings.

Can someone point me to a sed or shell script that I can use on a text file to
remove the whitespace between the letters in the words only? Here is the
top of the script file as it stands now:

- - C r e a t e C u s t o m e r s t a b l e

C R E A T E T A B L E C u s t o m e r s

(

c u s t _ i d c h a r ( 1 0 ) N O T N U L L ,

c u s t _ n a m e c h a r ( 5 0 ) N O T N U L L ,

c u s t _ a d d r e s s c h a r ( 5 0 ) ,

c u s t _ c i t y c h a r ( 5 0 ) ,

c u s t _ s t a t e c h a r ( 5 ) ,

c u s t _ z i p c h a r ( 1 0 ) ,

c u s t _ c o u n t r y c h a r ( 5 0 ) ,

c u s t _ c o n t a c t c h a r ( 5 0 ) ,

c u s t _ e m a i l c h a r ( 2 5 5 )

) ;

#5Alvaro Herrera
alvherre@dcc.uchile.cl
In reply to: Jerome Lyles (#4)
Re: Postgresql and scripting

On Tue, Sep 07, 2004 at 01:33:08PM -1000, Jerome Lyles wrote:

On Tuesday 07 September 2004 01:50 am, John DeSoi wrote:

On Sep 7, 2004, at 7:24 AM, Jerome Lyles wrote:

test-# \i create.txt
psql:create.txt:1: ERROR: syntax error at or near "" at character 1

Here is the top of the script:
------------------------------------------------------------
- - S a m s T e a c h Y o u r s e l f S Q L i n 1 0 M i
n u t e

It seems that your file might be in unicode (utf-16) since it appears
there is whitespace after every character. Check your editor settings
and resave the file.

Right now it's in unicode (utf-8), switching between utf 8 and sixteen has no
effect on the spaces between letters. Tried iso 8859-1 and iso 8859-15 but
the editor window was empty for these encodings.

Did you try using recode?

recode utf16..iso8859-15 filename

Of course, just changing the encoding setting in the editor does not
automatically recode the file, does it?

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Ni aun el genio muy grande llegar�a muy lejos
si tuviera que sacarlo todo de su propio interior" (Goethe)

#6Oliver Elphick
olly@lfix.co.uk
In reply to: Jerome Lyles (#4)
Re: Postgresql and scripting

On Wed, 2004-09-08 at 00:33, Jerome Lyles wrote:
...

Can someone point me to a sed or shell script that I can use on a text file to
remove the whitespace between the letters in the words only? Here is the
top of the script file as it stands now:

- - C r e a t e C u s t o m e r s t a b l e

$ echo '- - C r e a t e C u s t o m e r s t a b l e' |
sed -e 's/\([^ ]\) \([^ ]\)/\1\2/g' -e 's/\([^ ]\) \([^ ]\)/\1\2/g' -e 's/ */ /g'
-- Create Customers table

--
Oliver Elphick olly@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA
========================================
"Put on the whole armor of God, that ye may be able to
stand against the wiles of the devil."
Ephesians 6:11

#7Jerome Lyles
susemail@hawaii.rr.com
In reply to: Jerome Lyles (#1)
Re: Postgresql and scripting

On Tuesday 07 September 2004 10:22 pm, Dorward villaruz wrote:

hi!

try this in commandline i assume you save the file in sams.txt
final file will be sams2.txt

cat sams.txt | sed -e 's/ /@@/g' -e 's/ //g' -e 's/@@/ /g' > sams2.txt

or put this in a script say convert.sh

script start:
#!/bin/bash
cat $1 | sed -e 's/ /@@/g' -e 's/ //g' -e 's/@@/ /g' > $2
script end:

how to use?

convert.sh <input file> <output file>

best regards,
wardy

Thank you for this. I've spent a few hours today searching and experimenting
to produce this code. I can almost understand the sed command. Everything
between the quotes is the action to be taken. The 's' is for substitution,
the / / is the whitespace to be replaced, the/@@/ is what the whitespace is
replaced with but I don't know what the @@ stands for, the g means it's
applied globally. I think what I just said is wrong because I have no clue
why the second and third substitution are there. And finally the output is
directed to $2. I'll have to wait until tomorrow evening to play with it. I
look forward to it.
thanks,
Jerome

#8Bruce Momjian
bruce@momjian.us
In reply to: Jerome Lyles (#7)
Re: Postgresql and scripting

Jerome Lyles <susemail@hawaii.rr.com> writes:

the/@@/ is what the whitespace is replaced with but I don't know what the @@
stands for,

It doesn't stand for anything, it just means replace with "@@". Now look again
at the second and third substitution...

--
greg