[oracle_br] Re: Converter campo long
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
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
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!.