[firebase-br] RES: CONVERTER BLOB PARA VARCHAR

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Seg Jan 26 15:18:59 -03 2009


Daniel, você está usando FB 2.1 ? 

Não tenho certeza se é nesta versão ou na 2.0 que a função SUBSTRING parou
de funcionar para BLOBs; essa era uma maracutaia que a gente fazia pra
converter o conteúdo do blob, já que a SUBSTRING sempre retornava um
VARCHAR.

Se você estiver utilizando a versão 2.1, faça simplesmente um CAST:


UPDATE temp_historico_os
     SET NOM_TEXTO = CAST(:v_defeitos AS VARCHAR(100))
     WHERE ID_PATRIMONIO = :v_id_patrimonio AND
           IDOS          = :v_num_os        AND
           DATA_OS       = :v_data          AND
           TIPO          = 'DE'             AND
           NOM_TEXTO     IS NULL;


[]'s

Rodrigo

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Isael Faria Junior
Enviada em: segunda-feira, 26 de janeiro de 2009 12:55
Para: FireBase
Assunto: Re: [firebase-br] CONVERTER BLOB PARA VARCHAR

NÃO DEU CERTO
ESTOU TENTANDO FAZER ISSO

UPDATE temp_historico_os
     SET NOM_TEXTO = substring(:v_defeitos from 1 for 100)
     WHERE ID_PATRIMONIO = :v_id_patrimonio AND
           IDOS          = :v_num_os        AND
           DATA_OS       = :v_data          AND
           TIPO          = 'DE'             AND
           NOM_TEXTO     IS NULL;

ONDE :V_DEFEITOS E BLOB.

DA O SEGUINTE ERRO

*Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
internal error.*

Gustavo Moda escreveu:
> 2009/1/26 Isael Faria Junior <isael em stetika.com.br>:
>   
>> PESSOAL,
>>
>> TENHO O SEGUINTE PROBLEMA
>> TENHO CAMPOS EM MINHA TABELA DO TIPO BLOB,
>> POREM PRECISO DEIXA-LOS COMO VARCHAR PARA QUE OS MESMOS POSSAM SER VISTOS
NO
>> CRYSTAL REPORT'S
>> TENHO QUE  FAZER ISSO POIS ESTOU GRAVANDO ESTES DADOS EM UMA OUTRA TABELA
>> PARA IMPRESSÃO DO RELATORIO,
>> ALGUEM SABE COMO FAZER ESTA CONVERSÃO ?
>>     
>
> Olá,
>
>
> alter table compo_varchar_1 varchar(30720);
> commit work;
>
> update tabela set campo_varchar_1 = substring(campo_blob from 1 for
30720);
>
>
> commit work;
>
> p.s.
> - Seu campo BLOB armazena somente textos? Se sim, vc pode converter
> para VARCHAR.
> - Certifique-se que o conteúdo de cada campo blob em todos os
> registros não ultrapasse o tamanho criado do varchar. Ok?
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> __________ Information from ESET Smart Security, version of virus
signature database 3789 (20090122) __________
>
> The message was checked by ESET Smart Security.
>
> http://www.eset.com
>
>
>
>
>   

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

No virus found in this incoming message.
Checked by AVG - http://www.avg.com 
Version: 8.0.176 / Virus Database: 270.10.13/1916 - Release Date: 26/1/2009
07:08





Mais detalhes sobre a lista de discussão lista