Re: Determine length of numeric field

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Determine length of numeric field
Дата
Msg-id 10590.1297804216@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Determine length of numeric field  (Tony Capobianco <tcapobianco@prospectiv.com>)
Ответы Re: Determine length of numeric field  (Tony Capobianco <tcapobianco@prospectiv.com>)
Список pgsql-sql
Tony Capobianco <tcapobianco@prospectiv.com> writes:
> 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);

That seems like a pretty bizarre operation to apply to a number.  Why
not "where sourceid > 99999"?  Or maybe "where abs(sourceid) > 99999"
would be better.
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: Tony Capobianco
Дата:
Сообщение: Re: Determine length of numeric field
Следующее
От: Tony Capobianco
Дата:
Сообщение: Re: Determine length of numeric field