Re: [GENERAL] DB insert Error - Mailing list pgsql-novice

From Jasbinder Bali
Subject Re: [GENERAL] DB insert Error
Date
Msg-id a47902760608152130h34adc01ew5da8968cdd60325c@mail.gmail.com
Whole thread Raw
In response to Re: [GENERAL] DB insert Error  (Michael Fuhr <mike@fuhr.org>)
List pgsql-novice
table definition of raw_email table is as follows
 
CREATE TABLE raw_email (
     id        int4 NOT NULL,
     raw_email  varchar[],
     parsed_flag bool NOT NULL DEFAULT false,
     CONSTRAINT  pk_rawemail PRIMARY KEY (id)
)
WITHOUT OIDS;
 
i have very much declared raw_email field as varchar and not char
 
~Jas


 
On 8/16/06, Michael Fuhr <mike@fuhr.org> wrote:
On Tue, Aug 15, 2006 at 11:55:58PM -0400, Jasbinder Bali wrote:
> I'm using ECPG and trying to do follwoing insert in one of the talbes.
>
> insert into raw_email ( id  , raw_email  ) values ( 1 , :ch);
>
> ch is an array and defined as follows:
>
> EXEC SQL BEGIN DECLARE SECTION;
>    char ch[MSG_LEN];
> EXEC SQL END DECLARE SECTION;
>
> contents of array ch is actually a parsed raw email that i've attached
> herewith.
>
> I get the following error when the insert statement is hit:
>
> [2446]: ECPGexecute line 97: Error: ERROR:  array value must start with "{"
> or dimension information.

What's the table definition for raw_email?  Based on the error it
looks like one of the columns you're inserting is defined as an
array.  I'm guessing you did something like this:

CREATE TABLE raw_email (
     id         integer,
     raw_email  char[]
);

When you should have done this:

CREATE TABLE raw_email (
     id         integer,
     raw_email  text  -- or varchar
);

Is my guess correct?

--
Michael Fuhr

pgsql-novice by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: [GENERAL] DB insert Error
Next
From: Michael Fuhr
Date:
Subject: Re: [GENERAL] DB insert Error