Boa tarde turma...estou precisando saber a quantidade de caracters q tem uma frase....porém, não posso usar o length pois esta frase tem mais de 4mil caracters..alguém sabe algum comando para contar a quantidade de caracter de um campo long ???
abraços
Contando caracters
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
não consegue quebrar ela em partes e então aplicar o lenght?
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
vê se ajuda
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
Boa tarde turma...
Sérgio, você disse para eu quebrar em "parte"...mas, eu vou passar uma string inteira, e justamente eu quero q o programa quebre a string de 2mil em 2 mil caracter.....se você sabe um script que quebre desta forma, me fale.
Victor, cara, este script não serve para mim (pelo menos eu acho q não...heheh) porque quero fazer uma procedure que recebe um long e devolva 4 variáveis do tipo varchar2 (limitados em 2 mil caracter);;;exemplo, tenho um texto com 5500 caracter, então isso vai ser quebrado e devolvido em 2 variáveis com 2 mil caracter cada e 1 variável com 1500 caracter....
não sei se fui claro, mas em fim...obrigado por enquanto...se tiver alguma luz coloca ai no forum....
valeux
Sérgio, você disse para eu quebrar em "parte"...mas, eu vou passar uma string inteira, e justamente eu quero q o programa quebre a string de 2mil em 2 mil caracter.....se você sabe um script que quebre desta forma, me fale.
Victor, cara, este script não serve para mim (pelo menos eu acho q não...heheh) porque quero fazer uma procedure que recebe um long e devolva 4 variáveis do tipo varchar2 (limitados em 2 mil caracter);;;exemplo, tenho um texto com 5500 caracter, então isso vai ser quebrado e devolvido em 2 variáveis com 2 mil caracter cada e 1 variável com 1500 caracter....
não sei se fui claro, mas em fim...obrigado por enquanto...se tiver alguma luz coloca ai no forum....
valeux
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
já tentou usar um SUBSTR?
só um exemplo de aplicação, podes fazer select bem mais uteis nesta lógica
select * from (select substr('Oi mundo' ,1 , 2) from dual
union
select substr ('Oi mundo', 3,7) from dual)
order by 1 desc
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
faz um to_char antes
não pode??
não pode??
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Cara , se com o to_char não rolar não sei como te ajudar dae.
Mas se caso tu achar outra solução posta por aew.
Mas se caso tu achar outra solução posta por aew.
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
tenta ver se o pacote UTL_RAW te ajuda..
utl_raw.substr
utl_raw.length
utl_raw.substr
utl_raw.length
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
Bom dia turma....
Victor, não dá pra fazer um to_char...pois a string é muito grande (ela possui mais de 6mil caracter...) se eu tentar fazer to_char(substr()) também não dá...pois uma string com mais de 4mil posições tem q ser um long...e o long não pode ser utilizado nas funções length, substr, etc......
Diego, cara, tentei usar estas funções, mas dá a mesma mensagem de erro (String literal too long)
vou dar um exemplo do que estou precisando.
Turma, se caso vocês sugerirem algum outro tipo de variável que dê para trabalhar com o substr, length, etc. também está valendo....estou "penando" em cima disso...rsrsrs
Galera, obrigado pelo empenho de todos....
Abraços
Victor, não dá pra fazer um to_char...pois a string é muito grande (ela possui mais de 6mil caracter...) se eu tentar fazer to_char(substr()) também não dá...pois uma string com mais de 4mil posições tem q ser um long...e o long não pode ser utilizado nas funções length, substr, etc......
Diego, cara, tentei usar estas funções, mas dá a mesma mensagem de erro (String literal too long)
vou dar um exemplo do que estou precisando.
xvar1 varchar2(4000);
xvar2 varchar2(4000);
xvar_long long := (recebe 7 mil caracteres...);
begin
xvar1 := substr(xvar_long,4000);--aqui guardou 4 mil caracter do long
xvar2 := substr(xvar_long,4000,4000)--aqui termina de "quebrar" o long pegando os últimos caracteres
end;
Galera, obrigado pelo empenho de todos....
Abraços
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Cara tenta aplica um substr num espaço menor de caracteres e vê se funciona.
xvar1 varchar2(100);
xvar2 varchar2(100);
xvar_long long := (recebe 7 mil caracteres...);
begin
xvar1 := substr(xvar_long,0,100);
xvar2 := substr(xvar_long,100,200)
end;
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Tu já tinha falado isso, mas pelo teu exemplo pensei que estava aceitando.
Como este long é gerado??
Como este long é gerado??
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
este long vem do forms 4.5....ele é um "diário de bordo"...o usuário preenche um campo do tipo long, então eu tenho uma procedure que recebe este long e faz um insert na base...porém, preciso q o insert seja feito como varchar2....
valeu amigo.
valeu amigo.
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Este teu campo não pode ser varchar2?
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
não...não pode porque o diário de bordo na maioria das vezes vai ultrapassar as 4 mil posições....podendo chegar a 15 mil posições....então, vou ter q fazer um loop quebrando estes caracteres...mas, preciso saber de alguma função que manipule o long.
Abraços
Abraços
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Boa sorte.
Quando encontrar a solução posta para todos aí por favor.
Quando encontrar a solução posta para todos aí por favor.
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
http://glufke.net/oracle/viewtopic.php?t=3452
http://www.oracle.com/technology/oramag ... 52503.html#
Da uma olhada e vê se te ajuda aí.
http://www.oracle.com/technology/oramag ... 52503.html#
Da uma olhada e vê se te ajuda aí.
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
Sérgio...cara, você é meu héroi...heheeh...quando eu crescer quero ser igual a você...bixo, converti o LONG para CLOB.....tipo, fiz um select em uma tabela e deu certo...vou jogar em uma procedure para fazer o que preciso...caso der erro, posto minha dúvida novamente...
mas....muito obrigado pela ajuda e persistência...
um grande abraço
mas....muito obrigado pela ajuda e persistência...
um grande abraço
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
E o pior de tudo foi te quebrado a cabeça a manha inteira e encontrar a solução no google, uma simples troca de palavra chave me aparece um link aqui do fórum mesmo.
Aliás se com 30 min procurando no google não obtiver bom resultado, pode sentar e esperar um milagre porque não existe reposta pro problema.
Aliás se com 30 min procurando no google não obtiver bom resultado, pode sentar e esperar um milagre porque não existe reposta pro problema.
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
putss grilo....fiquei procurando no google ontem a manhã toda...não achava nada....certamente não estava escolhendo as palavras certas.....ai desisti e fiquei esperando o milagre...hehehe....
mas, ainda bem q existem profissionais como você para ajudar a turma....
obrigado novamente a galera (q ajudaram a enriquecer meus conhecimentos) e a você sérgio, pela persistência....heheh..
falow brother.
mas, ainda bem q existem profissionais como você para ajudar a turma....
obrigado novamente a galera (q ajudaram a enriquecer meus conhecimentos) e a você sérgio, pela persistência....heheh..
falow brother.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes