From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Tony Capobianco <tcapobianco(at)prospectiv(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Determine length of numeric field |
Date: | 2011-02-15 21:04:44 |
Message-ID: | AANLkTinxqjfVzcv-=8m_tzLjvCpOah7N9UuBgZauMcO0@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hello
probably you have to use a explicit cast
postgres=# select length(10::numeric::text);
length
--------
2
(1 row)
Regards
Pavel Stehule
2011/2/15 Tony Capobianco <tcapobianco(at)prospectiv(dot)com>:
> I'm altering datatypes in several tables from numeric to integer. In
> doing so, I get the following error:
>
> dw=# \d uniq_hits
> Table "support.uniq_hits"
> Column | Type | Modifiers
> ------------+---------+-----------
> sourceid | numeric |
> hitdate | date |
> total | numeric |
> hitdate_id | integer |
> Indexes:
> "uniq_hits_hitdateid_idx" btree (hitdate_id), tablespace
> "support_idx"
> Tablespace: "support"
>
> esave_dw=# alter table uniq_hits alter sourceid type int;
> ERROR: integer out of range
>
> Sourceid should not be more than 5 digits long. I'm able to perform
> this query on Oracle and would like something similar on postgres 8.4:
>
> delete from uniq_hits where sourceid in (select sourceid from uniq_hits
> where length(sourceid) > 5);
>
> I haven't had much luck with the length or char_length functions on
> postgres.
>
> Thanks.
> Tony
>
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Steinheuser | 2011-02-15 21:08:52 | Re: Determine length of numeric field |
Previous Message | Tony Capobianco | 2011-02-15 20:48:35 | Determine length of numeric field |