Обсуждение: ecpg help with 7.3

Поиск
Список
Период
Сортировка

ecpg help with 7.3

От
"Sid"
Дата:
Hi all,

   To start with we have recently migrated from v7.2.3 to v7.3, and I have
an embedded SQL code (ecpg) that used to work fine with 7.2.3. With the new
7.3 it gives me an error when inserting into a table,
Cannot Insert in table xyz(-400):50 'ERROR: pg_atoi: zero-length string'
my first guess was that there was a zero length string (NULL) being inserted
in the table... but the attributes of the columns in the table are such that
they can accept NULL's too.
Having done this i tested the same data over 7.2.3 and it worked good. Can
somebody help me with this please .....


Thanks and regards
=Sid




Re: *****SPAM***** ecpg help with 7.3

От
Michael Meskes
Дата:
On Mon, Jan 27, 2003 at 12:48:23PM -0500, Sid wrote:
> Cannot Insert in table xyz(-400):50 'ERROR: pg_atoi: zero-length string'
> my first guess was that there was a zero length string (NULL) being inserted
> in the table... but the attributes of the columns in the table are such that
> they can accept NULL's too.

Zero length strings are something different than NULLs. The pg_atoi
message shows that there indeed is a zero length string.

You could enable logging and see exactly what data is sent to the
backend. Please just look into the test cases in ecpg/test and search
for ECPGdebug resp. file descriptor dbgs.

Michael
--
Michael Meskes
Email: Michael@Fam-Meskes.De
ICQ: 179140304
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

Re: ecpg help with 7.3

От
Tom Lane
Дата:
"Sid" <sbhatt@installs.com> writes:
> Cannot Insert in table xyz(-400):50 'ERROR: pg_atoi: zero-length string'
> my first guess was that there was a zero length string (NULL) being inserted
> in the table...

A zero-length string is not a NULL (even if Oracle can't tell the
difference).

Before 7.3, pg_atoi (the integer datatype's input converter) would
sloppily accept a zero-length string as meaning 0 (not NULL).  We
fixed that ...

            regards, tom lane

ecpg help with 7.3

От
Lee Kindness
Дата:
Sid,

Before 7.3, trying to insert an empty string into a number type column
would result in 0 being inserted into the column:

 lkind=# CREATE TABLE x(f INTEGER);
 CREATE
 lkind=# INSERT INTO x(f) VALUES ('');
 INSERT 859614628 1
 lkind=# SELECT * FROM x;
  f
 ---
  0
 (1 row)

With 7.3 an error is now output.

 lkind=# CREATE TABLE x(f INTEGER);
 CREATE TABLE
 lkind=# INSERT INTO x(f) VALUES ('');
 ERROR:  pg_atoi: zero-length string
 lkind=# SELECT * FROM x;
  f
 ---
 (0 rows)

Also you seem to be confusing the empty string with NULL - an empty
string is not a NULL value. To insert a NULL:

 lkind=# INSERT INTO x(f) VALUES (NULL);
 INSERT 28217013 1
 lkind=# SELECT * FROM x;
  f
 ---

 (1 row)

Lee.

Sid writes:
 > Hi all,
 >
 >    To start with we have recently migrated from v7.2.3 to v7.3, and I have
 > an embedded SQL code (ecpg) that used to work fine with 7.2.3. With the new
 > 7.3 it gives me an error when inserting into a table,
 > Cannot Insert in table xyz(-400):50 'ERROR: pg_atoi: zero-length string'
 > my first guess was that there was a zero length string (NULL) being inserted
 > in the table... but the attributes of the columns in the table are such that
 > they can accept NULL's too.
 > Having done this i tested the same data over 7.2.3 and it worked good. Can
 > somebody help me with this please .....
 >
 >
 > Thanks and regards
 > =Sid