Chiappa, muito obrigado pela ajuda e realmete vc está certo é um problema da 
linguagem, consegui resolver , mas o q meu deixou intrigado é.
Se no ORacle 9i ele aceita um to_char de um campo CLOB o que irá acontecer se 
nesse campo tiver mais de 4mil caracteres será q ira estourar?

bom mas em todo caso muito obrigado pela ajuda

t+ 
Thiago



jlchiappa escreveu:

>Thiago, eu tinha respondido antes, mas parece que deu algum piripaque
>aqui no meu acesso à internet, não sei se chegou até o grupo a
>resposta ou não, assim mando de novo, se vc ou alguém mais receber
>duplicado, favor ignorar. Segue :
>
> Ah, ok, agora está claro, o banco está fazendo o CORRETO e
>DOCUMENTADO, tratando CLOB e VARCHAR , ** corretíssimamente **, como
>datatypes DIFERENTES,  a questão aí então NÃO É de banco, mas sim da
>SUA linguagem, e do comportamento dela, do suporte ou falta de a algum
>datatype Oracle, certo... 
> Bom, não programo em php, MAS sempre sempre a recomendação é ir aonde
>existe pessoal que entenda : em várias outras msgs referentes à php,
>tenho direcionado o pessoal à página-mãe da Oracle sobre php em
>http://www.oracle.com/technology/tech/php/index.html , onde numa busca
>super-rápida achei
>http://www.oracle.com/technology/pub/articles/oracle_php_cookbook/fuecks_lobs.html
>, que parece tratar sobre o caso em questão. Da mesma forma. google é
>seu amigo, e os newsgroups tão aí pra serem pesquisados, também...
>
>OBS : quanto à uma eventual conversão, não sei se tinha ficado claro,
>mas na msg original eu já tinha dito, agra REPITO : na versão 9i o
>manual diz que as funções SQL (TO_CHAR inclusive) FAZEM conversão
>implícita, enquanto a 8i NÃO, então SE vc vai programar em 8i, e SE
>for necessário (por qquer bug/falha/falta de suporte à LOBs por parte
>da sua linguagem) converter LOBs pra CHARs, afaik vc vai ter que
>escrever uma função PL/SQL pra isto, lendo e manipulando o LOB via
>rotinas da package DBMS_LOB.
>
>[]s
>
> Chiappa
>--- Em oracle_br@yahoogrupos.com.br, Thiago Menon <[EMAIL PROTECTED]> escreveu
>  
>
>>Td bem, só que no meu caso eu precisaria de usar a funcao TO_CHAR, pois 
>>eu preciso recuperar esse valor no PHP.
>>
>>Qdo eu nao utilizo o TO_CHAR e pego o valor de um campo do tipo CLOB
>>    
>>
>ele 
>  
>
>>retorna OBJECT, se eu utilizar o TO_CHAR com o banco 9i não da erro 
>>nenhum e exibe o texto certo, com o banco 8i da erro de conversão.
>>
>>Dai pensei nas seguintes possibilidades para solucionar esse problema.
>>1° seria fazer alguma funcao no oracle q retorno o campo como se fosse 
>>um varchar2. (essa opçao nao consegui, obtive o mesmo erro mesmo com
>>    
>>
>pl/sql)
>  
>
>>2° ver se eu consigo fazer algo no PHP que execute algum script no
>>    
>>
>linux 
>  
>
>>q entre no sqlplus faça um SELECT do campo q eu quero exibir, salve o 
>>resultado em um arquivo, dai eu volto para o PHP e leio esse arquivo e 
>>exibo aonde tiver q exibir. (estou pensando em como fazer isso)
>>3° ver se a atualização do path do oracle 8i para netware arruma esse 
>>erro. ( mas eu nao tenho senha do metalink, to arrumando)
>>
>>Em todo caso muito obrigado
>>Thiago
>>msn: [EMAIL PROTECTED]
>>
>>
>>jlchiappa escreveu:
>>
>>    
>>
>>>OK, mas isso é pra casos que extrapolem limites do cliente : *** SE 
>>>*** vc está usando sqlplus, como iirc vc disse em outra msg, 
>>>ABSOLUTAMENTE vc não precisa fazer conversão ALGUMA, o sqlplus 8i é 
>>>TOTALMENTE capz de exibir CLOBs até o limite definido pelo longsize :
>>>
>>>
>>>[EMAIL PROTECTED]:SQL>create table TBL_EQUIP_TIPOS(ID    number, 
>>> 2                               TIPO  char(1), 
>>> 3                               TEXTO_PADRAO CLOB
>>> 4                               );
>>>
>>>Tabela criada.
>>>
>>>[EMAIL PROTECTED]:SQL>insert into TBL_EQUIP_TIPOS values(1, 'A', 'Este é o 
>>>texto do tipo A id=1 !!!');
>>>
>>>1 linha criada.
>>>
>>>[EMAIL PROTECTED]:SQL>commit;
>>>
>>>Validação completa.
>>>
>>>[EMAIL PROTECTED]:SQL>select * from TBL_EQUIP_TIPOS;
>>>
>>>               ID T TEXTO_PADRAO
>>>------------------ - -------------------------------------------------
>>>-------------------------------
>>>                1 A Este é o texto do tipo A id=1 !!!
>>>
>>>
>>>[EMAIL PROTECTED]:SQL>insert into TBL_EQUIP_TIPOS values(2, 'B', lpad('X', 
>>>4000, '*'));
>>>
>>>1 linha criada.
>>>
>>>[EMAIL PROTECTED]:SQL>
>>>
>>>[EMAIL PROTECTED]:SQL>BEGIN
>>> 2  insert into TBL_EQUIP_TIPOS values(3, 'C', lpad('Y', 
>>>32767, '$'));
>>> 3  END;
>>> 4  /
>>>
>>>Procedimento PL/SQL concluído com sucesso.
>>>
>>>[EMAIL PROTECTED]:SQL>select * from TBL_EQUIP_TIPOS;
>>>
>>>               ID T TEXTO_PADRAO
>>>------------------ - -------------------------------------------------
>>>-----------------
>>>                1 A Este é o texto do tipo A id=1 !!!
>>>                2 B 
>>>******************************************************************
>>>                3 C 
>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>
>>>[EMAIL PROTECTED]:SQL>set lines 80
>>>
>>>[EMAIL PROTECTED]:SQL>set long 33000  <<== este é o cara pra ajuste do 
>>>plus, é documentado no sqlplus user´s guide...
>>>
>>>-- agora farei um SELECT simples, sem aquele TO_CHAR absurdo (só por 
>>>causa do espaço aqui do Fórum, vou EDITAR alguns dos "*" e dos "$" , 
>>>mas eles apareceram direitinho aqui na tela) :
>>>
>>>[EMAIL PROTECTED]:SQL>select * from TBL_EQUIP_TIPOS;
>>>
>>>               ID T
>>>------------------ -
>>>TEXTO_PADRAO
>>>----------------------------------------------------------------------
>>>----------
>>>                1 A
>>>Este é o texto do tipo A id=1 !!!
>>>
>>>                2 B
>>>**********************************************************************
>>>**********
>>>**********************************************************************
>>>**********
>>>.....
>>>**********************************************************************
>>>**********
>>>**********************************************************************
>>>*********X
>>>
>>>                3 C
>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>$$$$$$$$$$
>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>$$$$$$$$$$
>>>........
>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>$$$$$$$$$$
>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>$$$$$$$$$Y
>>>
>>>
>>>[EMAIL PROTECTED]:SQL>
>>>
>>>[]s
>>>
>>>Chiappa
>>>
>>>--- Em oracle_br@yahoogrupos.com.br, Thiago Menon <[EMAIL PROTECTED]> 
>>>escreveu
>>> 
>>>
>>>      
>>>
>>>>Cara muito obrigado pela ajuda.
>>>>
>>>>Vou procurar sobre dbms_lob.
>>>>
>>>>valeu
>>>>Thiago
>>>>
>>>>jlchiappa escreveu:
>>>>
>>>>   
>>>>
>>>>        
>>>>
>>>>>Colega, manipulações de datatypes realmente muitas vezes MUDAM 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>mesmo 
>>> 
>>>
>>>      
>>>
>>>>>em cada versão de banco, e/ou novos datatypes são adicionados, é 
>>>>>natural... No caso em questão, é documentado que quando vc chama 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>uma 
>>> 
>>>
>>>      
>>>
>>>>>função com um argumento de datatype não-esperado há conversão 
>>>>>implícita (manual "Oracle8i SQL Reference", cap. 4 - Functions, 
>>>>>), e o mesmo manual cap. 2 - Basic Elements of Oracle SQL, na 
>>>>>tabela "Table 2-6 SQL Functions for Datatype Conversion" mostra 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>que 
>>> 
>>>
>>>      
>>>
>>>>>** NÃO HÁ ** conversão implícita entre CHAR e LOB.
>>>>>Já no banco 9i, o manual "Oracle9i SQL Reference" no cap. 6, 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>itens  
>>> 
>>>
>>>      
>>>
>>>>>Functions, nos diz :
>>>>>
>>>>>-----------------------------------------------------------
>>>>>SQL Functions
>>>>>Note: 
>>>>>When you apply SQL functions to LOB columns, Oracle creates 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>temporary 
>>> 
>>>
>>>      
>>>
>>>>>LOBs during SQL and PL/SQL processing. You should ensure that 
>>>>>temporary tablespace quota is sufficient for storing these 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>temporary 
>>> 
>>>
>>>      
>>>
>>>>>LOBs for your application.
>>>>>
>>>>>==> OU seja, é um comportamento novo/melhoria DO 9i, sim ??? 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>Aliás, é 
>>> 
>>>
>>>      
>>>
>>>>>EXATAMENTE por isso que é MUITO MUITO recomendável que vc 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>desenvolva 
>>> 
>>>
>>>      
>>>
>>>>>e tenha os seus bancos de teste EXATAMENTE NA MESMA versão...
>>>>>
>>>>>A solução 8i é usar as built-ins PL/SQL específicas para LOB no 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>8i, 
>>> 
>>>
>>>      
>>>
>>>>>são as da package DBMS_LOB, vc acha ref sobre elas tanto no manual 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>de 
>>> 
>>>
>>>      
>>>
>>>>>Concepts quanto no PL/SQL user´s Guide.
>>>>>
>>>>>[]s
>>>>>
>>>>>Chiappa
>>>>>
>>>>>--- Em oracle_br@yahoogrupos.com.br, Thiago Menon <[EMAIL PROTECTED]> 
>>>>>escreveu
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>>>Estou com o seguinte problema.
>>>>>>
>>>>>>  
>>>>>>
>>>>>>       
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>Qdo eu faço uma query em uma tabela com um campo que tem o tipo 
>>>>>>>         
>>>>>>>
>>>>>>>              
>>>>>>>
>>>= 
>>> 
>>>
>>>      
>>>
>>>>>>>    
>>>>>>>
>>>>>>>         
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>CLOB 
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>>>>eu utilizo TO_CHAR(campo), para recuperar o valor.
>>>>>>>
>>>>>>>Isso funciona lega no banco com versão 9i mas meu servidor está 
>>>>>>>    
>>>>>>>
>>>>>>>         
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>rodando 
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>>>>o 8i e ele nao aceita fala q o tipo é invalido.
>>>>>>>Alguem sabe como posso solucionar isso ?
>>>>>>>
>>>>>>>
>>>>>>>Erro no SqlPlus:
>>>>>>>SQL> SELECT ID, TIPO, TO_CHAR(TEXTO_PADRAO) AS TEXTO
>>>>>>>2             FROM TBL_EQUIP_TIPOS
>>>>>>>3             ORDER BY TIPO;
>>>>>>>SELECT ID, TIPO, TO_CHAR(TEXTO_PADRAO) AS TEXTO
>>>>>>>                      *
>>>>>>>ERRO na linha 1:
>>>>>>>ORA-00932: inconsistent datatypes
>>>>>>>
>>>>>>>
>>>>>>>muito obrigado
>>>>>>>Thiago
>>>>>>>Msn: [EMAIL PROTECTED]
>>>>>>>
>>>>>>>    
>>>>>>>
>>>>>>>         
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>
>>>>>
>>>>>-------------------------------------------------------------------
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>-------------------------------------------------------
>>> 
>>>
>>>      
>>>
>>>>>Atenção! As mensagens deste grupo são de acesso público e de 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>inteira responsabilidade de seus remetentes.
>>> 
>>>
>>>      
>>>
>>>>>Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
>>>>>-------------------------------------------------------------------
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>-------------------------------------------------------
>>>__________________________________________________________________
>>> 
>>>
>>>      
>>>
>>>>>Este Grupo recebe o apoio da SQL Magazine - 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>www.devmedia.com.br/sqlmagazine 
>>> 
>>>
>>>      
>>>
>>>>>__________________________________________________________________
>>>>>O grupo Oracle_br não aceita anexos. Quando oferecer algum 
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>arquivo, tenha o link do mesmo para evitar trafego(pedidos) 
>>>desnecessário. 
>>> 
>>>
>>>      
>>>
>>>>>Links do Yahoo! Grupos
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>
>>>
>>>
>>>
>>>      
>>>
>>--------------------------------------------------------------------------------------------------------------------------
>>    
>>
>>>Atenção! As mensagens deste grupo são de acesso público e de
>>>      
>>>
>inteira responsabilidade de seus remetentes.
>  
>
>>>Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
>>>      
>>>
>>--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
>>    
>>
>>>Este Grupo recebe o apoio da SQL Magazine -
>>>      
>>>
>www.devmedia.com.br/sqlmagazine 
>  
>
>>>__________________________________________________________________
>>>O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
>>>      
>>>
>tenha o link do mesmo para evitar trafego(pedidos) desnecessário. 
>  
>
>>>Links do Yahoo! Grupos
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 
>>>
>>>      
>>>
>
>
>
>
>
>
>
>--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens deste grupo são de acesso público e de inteira 
>responsabilidade de seus remetentes.
>Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
>--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
>
>Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
>__________________________________________________________________
>O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
>link do mesmo para evitar trafego(pedidos) desnecessário. 
>Links do Yahoo! Grupos
>
>
>
>
> 
>
>
>
>  
>


--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a