Chiappa,
 
Foi o que fiz aqui...
Enquanto aguardava a resposta, tentei jogar o valor em variáveis de depois
manipular.
 
Grato pela atenção/aula!!
 
Genivaldo

  _____  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: terça-feira, 8 de agosto de 2006 09:42
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Duvida Select


Anderson, va verdade na 10g o LONG não é mais recomendado, mas que o 
datatype LONG existe e FUNCIONA é claro que sim, pense na enorme 
quantidade de apps legadas que iam quebrar se não funcionasse... 
Genivaldo, operações como concatenação, funcs de strings, etc, 
funciona SIM em LONGs, mas (óbvio) dentro dos limites de strings do 
datatype character de cada linguagem (4000 bytes na linguagem SQL, 
cerca de 32 kb no PL/SQL), cfrme :

SQL*Plus: Release 10.1.0.4.0 - Production on Ter Ago 8 09:24:53 2006

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Conectado a:
Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining 
options

[EMAIL PROTECTED]:SQL>create table TAB_LONG(c1 number, c2 long);

Tabela criada.


[EMAIL PROTECTED]:SQL>insert into TAB_LONG values(1, 'A' || lpad('*', 
3999, '#'));

1 linha criada.

==> OK, 4000 bytes é o tamanho de strings máximo pra linguagem SQL 
cfrme documentado... Vamos tentar botar mais :

[EMAIL PROTECTED]:SQL>insert into TAB_LONG values(2, 'B' || lpad('*', 
32000, '#'));
insert into TAB_LONG values(2, 'B' || lpad('*', 32000, '#'))
            *
ERRO na linha 1:
ORA-01489: o resultado da concatenação de string é extenso demais

==> não podia funcionar mesmo... Vamos usar o PL/SQL :

[EMAIL PROTECTED]:SQL>DECLARE
  2     v_long long;
  3  BEGIN
  4     v_long := 'B' || lpad('*', 32000, '#');
  5    insert into TAB_LONG values(2, v_long);
  6  END;
  7  /

Procedimento PL/SQL concluído com sucesso.

==> vamos tentar passar o limite do PL/SQL...

[EMAIL PROTECTED]:SQL>ed
Gravou file afiedt.buf

  1  DECLARE
  2     v_long long;
  3  BEGIN
  4     v_long := 'C' || lpad('*', 32000, '#') || lpad('&', 
32000, '@') ;
  5    insert into TAB_LONG values(3, v_long);
  6* END;
[EMAIL PROTECTED]:SQL>/
DECLARE
*
ERRO na linha 1:
ORA-06502: PL/SQL: erro: buffer de string de caracteres pequeno 
demais numérico ou de valor
ORA-06512: em line 4


===> Até OFICIALMENTE na documentação, o 100% RECOMENDADO é vc passar 
a usar LOBs, que aí além de com LOBs as limitações do cacareco do 
LONG não se aplicarem, vc ainda tem a DBMS_LOB, mas se por qquer 
motivo vc for obrigado a usar LONGs, esses são os limites nesses dois 
ambientes/linguagens : pelo jeito, também está entrando em cena aí 
alguma limitação da sua tool SQL Navigator, entre em contato com o 
Fabricante dela e/ou consulte a documentação pra ver quais são... 
Programaticamente, em PL/SQL, vc tem a opção de processar LONGs 
maiores via DBMS_SQL, pesquise em http://asktom.oracle.com que vc 
acha alguns exemplos.

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Anderson" <[EMAIL PROTECTED]> 
escreveu
>
> Na versão 10g não há o type LONG, apenas as variações do type LOB.
> 
> É possível fazer agumas operações de select simples nestes campos, 
> mas a manipulação destes types é feita por meio da package DBMS_LOB.
> 
> 
> 
> --- Em oracle_br@yahoogrupos.com.br, "Genivaldo Silva" 
<[EMAIL PROTECTED]> 
> escreveu
> >
> > 
> > 
> > Pessoal,
> > 
> > Tenho um banco na versão 10g (10.1.0.5.0). Gostaria de saber se 
> nessa versão
> > eu consigo fazer selects em campos do tipo LONG? Se sim, como 
> concatenar
> > valores a ele? Pois tenho uma versão do SQL Navigator 3 que 
mostra o
> > conteúdo desse campo no proprio select, enquanto a versão 5 não 
> mostra. Mas
> > quando tento "trabalhar" esse campo fazer uma concatenação, por 
> exemplo, me
> > é retornado um erro de tipos inconsistêntes (ORA-932).
> > 
> > Alguem pode me ajudar?
> > 
> > Genivaldo
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>





 


[As partes desta mensagem que não continham texto foram removidas]



--------------------------------------------------------------------------------------------------------------------------
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/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__________________________________________________________________
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