Re: Can't cast from char to integer... - Mailing list pgsql-general

From Mike Diehl
Subject Re: Can't cast from char to integer...
Date
Msg-id 200809291802.10952.mdiehl@diehlnet.com
Whole thread Raw
In response to Re: Can't cast from char to integer...  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Can't cast from char to integer...  ("Merlin Moncure" <mmoncure@gmail.com>)
List pgsql-general
That fixed it.  If you are ever in Albuquerque, NM., let me know.  I'll be
happy to buy you a beer.

Mike.


On Monday 29 September 2008 05:26:43 pm Tom Lane wrote:
> Mike Diehl <mdiehl@diehlnet.com> writes:
> > For example, I'm trying to do this:
> >
> > insert into data
> >     select cast('666' as integer) as block_number, phone as phone_number,
> > name from demo_q;
> >
> > When I run this query, I get:
> >
> > ERROR:  column "block_number" is of type integer but expression is of
> > type character varying
>
> I don't get that ...
>
> I wonder whether the problem is that you are expecting the "as" labels
> in the SELECT to do something, like make the data go into the
> correspondingly named columns of the target table.  But they don't do
> anything.  This query is going to try to assign 666, phone, and name to
> the first three columns of "data", in order.  I'll bet it is actually
> complaining about the second or third column, not the 666 at all.
>
> If that's it, the syntax you are looking for is
>
> insert into data (block_number, phone_number, name)
>     select cast('666' as integer), phone_number, name
> from demo_q;
>
>             regards, tom lane



--
Mike Diehl

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Counting unique rows as an aggregate.
Next
From: "Gregory S. Youngblood"
Date:
Subject: Announcing PostgreSQL Certification Project Job Task Analysis Survey