Em 6 de abril de 2010 13:41, Mozart Hasse <[email protected]> escreveu:
> Olá Jose,
>
>> Bom dia ! Estou retomando este trabalho e tenho algumas dúvidas. Obrigado.
>> 1) Tentei executar o "insert as select" que voce me passou e está dando o
>> seguinte erro:
>> cdrger=# \i insert.sql
>> psql:insert.sql:18: ERRO: não pode converter tipo tid para character
>> varying
>
> Puuuuuuutz, de fato, não funciona em versões anteriores do PostgreSQL. Eu te
> passei o que funcionou na 8.4.3, não sei a partir de que versão foi colocado
> esse CAST. Não tenho sugestão de jeito fácil de fazer isso em versões
> anteriores.
>
>> O que significa o ctid ? Será que é isso que ele está reclamando ? Estou
>> executando isso:
>
> ctid é um identificador único do registro dentro da tabela, composto por 2
> números. O que o fragmento que passei faz é transformar os dois num número
> único e tirar o resto da divisão para ter uma distribuição meio
> aleatória.
>
Verifique se funciona:
bdteste=# SELECT ctid, (substring(ctid::text, 2, position(',' in
ctid::text)-2 )::int) * 199 + (substring(ctid::text, position(',' in
ctid::text)+1, length(rtrim(ctid::text)) - position(',' in
ctid::text)-1 )::int) FROM foo;
ctid | ?column?
-------+----------
(0,1) | 1
(0,2) | 2
(0,3) | 3
(0,4) | 4
(4 registros)
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral