Alterar campo de tabela no postgres com LPAD

1. Alterar campo de tabela no postgres com LPAD

warley
earthquake

(usa Ubuntu)

Enviado em 23/04/2012 - 13:20h

Boa tarde pessoal,

Meu banco tem uma tabela assim:

CREATE TABLE processos (
id integer DEFAULT nextval('processos_id_seq'::regclass) NOT NULL,
interessado_id integer NOT NULL,
setor_id integer NOT NULL,
situacao_id integer NOT NULL,
numero_processo integer NOT NULL,
);

Bem como faço para alterar a coluna numero_processo para ela sempre exiba 6 integer com 0 á esquerda?
Tipo em vez de armazenar 1,2,3, aparereça assim: 000001,0000002,000003 e assim por diante.
Estou tentando usar a função LPAD(numero_processo,6,'0'), mas não está funcioanando.
Tento assim: alter table processos alter colun numero_processo set LPAD(numero_processo,6,'0').
Qual seria a forma correta de fazer isto?

Obrigado


  


2. Re: Alterar campo de tabela no postgres com LPAD

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 27/04/2012 - 19:52h

Posso estar enganado, mas acho que vc não vai conseguir pois 00001 sria um CHAR ou VARCHAR o integer é 1 mesmo. Você não consegue armazenar assim, mas o lpad pode ser usado pra te mostrar o resultado do jeito que você quer. ex.:


=# \d carros
Table "public.carros"
Column | Type | Modifiers
--------+------------------------+-----------
marca | character varying(100) |
modelo | character varying(100) |
ano | integer |
cor | character varying(100) |

=# select marca,ano,cor from carros limit 2;
marca | ano | cor
-------+------+-------
VW | 2005 | preto
VW | 2008 | preto
(2 rows)


=# select marca,lpad(cast(ano as varchar),10,'0') as ano,cor from carros limit 2;
marca | ano | cor
-------+------------+-------
VW | 0000002005 | preto
VW | 0000002008 | preto


Bom ... pelo menos eu acho que é assim pra este datatype.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts