[oracle_br] Re: Converter campo long

2006-05-09 Por tôpico schmittfilho



Chiappa,

Desculpa pela má formulação e o novo tipo que criei (varchar3 - 
hehehehe)

Eu tenho uma tabela, onde as descricoes de alteracoes nos dados do 
sistema ficam num campo do tipo long... Nessa descricao fica uma 
sequencia numérica e depois o texto do tipo de modificacao...

Minha questao é se existe forma de via um SELECT capturar a 
sequencia numerica com o SUBSTR por exemplo. Quando tento, ele da 
tipos incompativeis...

Abraços

--- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] 
escreveu

 Bem, varchar3 não existe, suporei varchar2. Da mesma forma, vc 
fala 
 em converter o tipo, o que faz pensar que vc está querendo 
 converter o DATATYPE da coluna na tabela, mas logo em seguida vc 
fala 
 em SELECT, e SELECT não converte coisa alguma : o que vc quer 
 fazer exatamente ?? Se for simplesmente consultar os dados, 
 necessidade NENHUMA de fazer nada, DESDE QUE o texto do LONG seja 
** 
 MENOR ** do que o VARCHAR2 aceita :
 
 [EMAIL PROTECTED]:SQL@desc TAB_LONGS
 Nome Nulo? Tipo
 -  -
 C1 NUMBER
 C2 LONG
 
 
 [EMAIL PROTECTED]:SQLDECLARE
 2 x varchar2(1000);
 3 BEGIN
 4 select c2 into x from tab_longs where c1=2;
 5 dbms_output.put_line(x);
 6 END;
 7 /
 Linha 2 da Tabela
 
 Procedimento PL/SQL concluído com sucesso.
 
 
 Então explique MELHOR o que vc quer fazer exatamente, caso seja 
MESMO 
 converter o DATATYPE da COLUNA da TABELA PL/SQL seria sim o melhor 
 caminho, creio 
 
 []s
 
 Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, schmittfilho 
[EMAIL PROTECTED] 
 escreveu
 
  Boa tarde amigos,
  
  Tenho uma tabela com um campo de log definido como LONG. Ao 
tentar 
  efetuar uma consulta não consigo converter o tipo para 
 char/varchar3 
  via um select normal. 
  
  Fiz algumas pesquisas e consegui somente via procedimento no PL-
 SQL. 
  Vocês já tiveram situação parecida? Existe forma de conseguir 
  consultar sem que haja necessidade de uma rotina no PL-SQL?
  
  Abraços
 











--
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.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.












[oracle_br] Re: Converter campo long

2006-05-09 Por tôpico jlchiappa



Ah, ok, agora deu pra entender o que vc quer : não, uma das 
(muitas!!) restrições do cacareco do datatype LONG é que as funções 
de strings built-in (como a SUBSTR, a INSTR, etc) não funcionam com 
eles, então via SELECT simples vc NÃO vai conseguir extrair essa 
info, vc vai ter que escrever uma function PL/SQL que extraia a info 
e chamar essa function no seu SELECT. Quais comandos usar na function 
depende, se o tamanho máximo do texto nos seus LONGs é no máximo 32 
Kb vc simplesmente os lê numa variável VARCHAR2 na fun, vars VARCHAR2 
no PL/SQL podem ser até 32 Kb e ele faz a conversão de LONGs pra 
VARCHAR2 automaticamente, se forem  32 Kb. 
 Já se os seus LONGs forem maiores que 32 Kb, aí é mais complexo, vc 
tem que ler pedaço a pedaço via DBMS_SQL : em 
http://asktom.oracle.com/pls/ask/f?
p=4950:8:F4950_P8_DISPLAYID:665224430110 vc tem exemplo de ambas 
as técnicas.
 E é claro, se minimamente possível/viável, sugere-se pra LOGO a 
conversão desses LONGs pra CLOBs, aí essas  outras restrições somem.

[]s

 Chiappa

--- Em oracle_br@yahoogrupos.com.br, schmittfilho [EMAIL PROTECTED] 
escreveu

 Chiappa,
 
 Desculpa pela má formulação e o novo tipo que criei (varchar3 - 
 hehehehe)
 
 Eu tenho uma tabela, onde as descricoes de alteracoes nos dados do 
 sistema ficam num campo do tipo long... Nessa descricao fica uma 
 sequencia numérica e depois o texto do tipo de modificacao...
 
 Minha questao é se existe forma de via um SELECT capturar a 
 sequencia numerica com o SUBSTR por exemplo. Quando tento, ele da 
 tipos incompativeis...
 
 Abraços
 
 --- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] 
 escreveu
 
  Bem, varchar3 não existe, suporei varchar2. Da mesma forma, vc 
 fala 
  em converter o tipo, o que faz pensar que vc está querendo 
  converter o DATATYPE da coluna na tabela, mas logo em seguida vc 
 fala 
  em SELECT, e SELECT não converte coisa alguma : o que vc quer 
  fazer exatamente ?? Se for simplesmente consultar os dados, 
  necessidade NENHUMA de fazer nada, DESDE QUE o texto do LONG seja 
 ** 
  MENOR ** do que o VARCHAR2 aceita :
  
  [EMAIL PROTECTED]:SQL@desc TAB_LONGS
  Nome Nulo? Tipo
  -  -
  C1 NUMBER
  C2 LONG
  
  
  [EMAIL PROTECTED]:SQLDECLARE
  2 x varchar2(1000);
  3 BEGIN
  4 select c2 into x from tab_longs where c1=2;
  5 dbms_output.put_line(x);
  6 END;
  7 /
  Linha 2 da Tabela
  
  Procedimento PL/SQL concluído com sucesso.
  
  
  Então explique MELHOR o que vc quer fazer exatamente, caso seja 
 MESMO 
  converter o DATATYPE da COLUNA da TABELA PL/SQL seria sim o 
melhor 
  caminho, creio 
  
  []s
  
  Chiappa
  
  --- Em oracle_br@yahoogrupos.com.br, schmittfilho 
 [EMAIL PROTECTED] 
  escreveu
  
   Boa tarde amigos,
   
   Tenho uma tabela com um campo de log definido como LONG. Ao 
 tentar 
   efetuar uma consulta não consigo converter o tipo para 
  char/varchar3 
   via um select normal. 
   
   Fiz algumas pesquisas e consegui somente via procedimento no PL-
  SQL. 
   Vocês já tiveram situação parecida? Existe forma de conseguir 
   consultar sem que haja necessidade de uma rotina no PL-SQL?
   
   Abraços
  
 












--
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.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











[oracle_br] Re: Converter campo long

2006-05-08 Por tôpico jlchiappa



Bem, varchar3 não existe, suporei varchar2. Da mesma forma, vc fala 
em converter o tipo, o que faz pensar que vc está querendo 
converter o DATATYPE da coluna na tabela, mas logo em seguida vc fala 
em SELECT, e SELECT não converte coisa alguma : o que vc quer 
fazer exatamente ?? Se for simplesmente consultar os dados, 
necessidade NENHUMA de fazer nada, DESDE QUE o texto do LONG seja ** 
MENOR ** do que o VARCHAR2 aceita :

[EMAIL PROTECTED]:SQL@desc TAB_LONGS
 Nome Nulo? Tipo
 -  -
 C1 NUMBER
 C2 LONG


[EMAIL PROTECTED]:SQLDECLARE
 2 x varchar2(1000);
 3 BEGIN
 4 select c2 into x from tab_longs where c1=2;
 5 dbms_output.put_line(x);
 6 END;
 7 /
Linha 2 da Tabela

Procedimento PL/SQL concluído com sucesso.


Então explique MELHOR o que vc quer fazer exatamente, caso seja MESMO 
converter o DATATYPE da COLUNA da TABELA PL/SQL seria sim o melhor 
caminho, creio 

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, schmittfilho [EMAIL PROTECTED] 
escreveu

 Boa tarde amigos,
 
 Tenho uma tabela com um campo de log definido como LONG. Ao tentar 
 efetuar uma consulta não consigo converter o tipo para 
char/varchar3 
 via um select normal. 
 
 Fiz algumas pesquisas e consegui somente via procedimento no PL-
SQL. 
 Vocês já tiveram situação parecida? Existe forma de conseguir 
 consultar sem que haja necessidade de uma rotina no PL-SQL?
 
 Abraços











--
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.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.