|
|
| Mensagem |
Autor |
| Enviada: Sex, 23 Out 2009 11:04 am Assunto: SUM Com Replace! |
|
|
Informações do Ambiente:
* Versão do Oracle: 10 G
* Sistema Operacional: RH 4
Srs.. Bom dia a Todos!!!
Estou com um problema peculiar!!
Tenho uma Query dentro da aplicação que faz um SUM em um Campo Varchar2
Ate Ai Sem error...
Porem existe um Diferença
Quando eu executo essa query em alguma ferramenta de desenvolvimento preciso colocar um Replace nesse SUM
| Código: |
-- O REPLACE VEM AQUI
sum(replace(md.valor,'.',',')) valor,
-- FINAL DO REPLACE
|
Mais quando eu Jogo essa Query com Replace na Aplicação e mando executar
Da erro
| Código: | sum(replace(md.valor,'.',',')) valor,
*
ERROR at line 93:
ORA-01722: invalid number
|
alguém Faz Ideia do que Pode ser???
_________________ Dulima
DBA Oracle Jr
|
|
Dulima-SP Rank: DBA Júnior

Registrado em: Qui, 24 de Janeiro de 2008 Mensagens: 186 Cidade - UF: SP
|
|
|
 |
| Enviada: Sex, 23 Out 2009 12:13 pm |
|
|
se não me engado o replace retorna uma string dai não tem como aplicar a funcao sum
inverta a ordem.. faça o seu sum e depois aplique o replace no seu resultado
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 12:16 pm |
|
|
não tinha lido tudo...
para aplicar o sum você vai ter de dar um to_number e então aplicar seu sum dai depois o seu replace
to_number('1210.73', '9999.99')
onde o segundo parametro e a mascara de conversao
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 12:38 pm |
|
|
|
Cara Li umas 15 vezes ...
Acho que não me expressei mal!!
O Replace Funciona, mais so na Ferramenta com TOAD, no Servidor tenho que Tirar o Replace!!!
Isso que eu não Entendi....
porque que no TOAD SÓ funciona com o REPLACE e no servidor so Funciona quando eu Tiro o REPLACE??
_________________ Dulima
DBA Oracle Jr
|
|
Dulima-SP Rank: DBA Júnior

Registrado em: Qui, 24 de Janeiro de 2008 Mensagens: 186 Cidade - UF: SP
|
|
|
 |
| Enviada: Sex, 23 Out 2009 12:45 pm |
|
|
desculpa a minha ignorancia mas eu acho q sum em campo varchar não funciona não
so vai funcionar se você não tiver dados para serem exibidos...
talvez na sua aplicaçao tem algumas clausulas where q impessam a exibiçao de dados
mas pelo que entendi o seu problema e com replace ne..
essa parada de . e , como separador de casa decimais esta ligado a regionalidade.. mas não faz sentido ser diferente uma vez que o toad esta acesasndo o mesmo banco q sua aplicaçao
em fim.. desculpa se estou tomando seu tempo
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 12:51 pm |
|
|
|
Nada....
Mais esse e o Ponto Se é a Mesma base, porque funciona de Forma Diferente...
Eu li algumas coisa sobre a regionalidade, mais não tirou as minhas Duvidas!!!
Será que e configuração da Ferramenta???
porque não Faz Sentido....
a Mesma coisa rodar de forma diferente no mesmo banco!!!
_________________ Dulima
DBA Oracle Jr
|
|
Dulima-SP Rank: DBA Júnior

Registrado em: Qui, 24 de Janeiro de 2008 Mensagens: 186 Cidade - UF: SP
|
|
|
 |
| Enviada: Sex, 23 Out 2009 1:11 pm |
|
|
pode ser algo que se configre no toad ne.. talvez o profile do usuario..
talvez a versao do toad não suporte a sua versao do oracle..
qual a versao toad?
qual a versao oracle?
qual o tipo do campo?
como e sua aplicação?
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 2:02 pm |
|
|
qual a versao toad?
9.0.0.160
qual a versao oracle?
10.2.0.4.0
qual o tipo do campo?
Varchar2
como e sua aplicação?
Linguagem ASP e VB script
você concorda que e Estranho....??
_________________ Dulima
DBA Oracle Jr
|
|
Dulima-SP Rank: DBA Júnior

Registrado em: Qui, 24 de Janeiro de 2008 Mensagens: 186 Cidade - UF: SP
|
|
|
 |
| Enviada: Sex, 23 Out 2009 2:11 pm |
|
|
o usuario de conexao da aplicacao e o mesmo que você esta usando no toad?
já tentou usar outra ferramenta.. plsql Developer por exemplo?
é estranho ne.. tem alguma coisa errada que não esta certa..rsrsrs
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 2:17 pm |
|
|
este e o inverso do seu..
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 2:31 pm |
|
|
O Usuario e o Mesmo...
já Rodei no Developer.... Ate em maquinas Dferentes e NADA...
mesmo Erro..
_________________ Dulima
DBA Oracle Jr
|
|
Dulima-SP Rank: DBA Júnior

Registrado em: Qui, 24 de Janeiro de 2008 Mensagens: 186 Cidade - UF: SP
|
|
|
 |
| Enviada: Sex, 23 Out 2009 2:32 pm |
|
|
| Código: |
ORA-01722: invalid number
Cause: The attempted conversion of a character string to a number failed because the character string was not a valid numeric literal. Only numeric fields or character fields containing numeric data may be used in arithmetic functions or expressions. Only numeric fields may be added to or subtracted from dates.
Action: Check the character strings in the function or expression. Check that they contain only numbers, a sign, a decimal point, and the character "E" or "e" and retry the operation.
|
analisando a açao corretiva temos
Verifique as cadeias de caráter na função ou expressão. Verifique que eles contêm só números, um sinal, um ponto decimal, e o caráter "E" ou "e" e reexperimentam a operação.
Então ..
quando você substitui seu separador decimal de ponto para virgula la no toad ele não entende virgula por separador de casa decimal logo você tem o erro de invalid number
Ponto (.) é o separador americano e virgula (,) "brasileiro" então é bem provavel que alguma coisa deva ser setada no toad.. já deu uma boa fuçada??
_________________ Jesus está voltando, volte antes para Ele.
Victor Hugo M. M.
|
|
victorhugomuniz Moderador


Registrado em: Sex, 1 de Fevereiro de 2008 Mensagens: 966 Cidade - UF: Rio de Janeiro - RJ
|
|
|
 |
| Enviada: Sex, 23 Out 2009 3:07 pm |
|
|
Provavelmente o TOAD deve estar setando a sessão.
Veja esse tópico sobre o formato:
http://glufke.net/oracle/viewtopic.php?t=5253
No TOAD, pra mudar o format é no menu VIEW / TOAD OPTIONS
Daí vai em General
Ali tem Ponto decimal ou Virgula decimal.
_________________ Thomas F. G.
Campanha: Faça uma pesquisa antes de perguntar!!!
|
|
dr_gori Moderador


Registrado em: Seg, 3 de Mai de 2004 Mensagens: 3222 Cidade - UF: Porto Alegre - RS
|
|
|
 |
| Enviada: Seg, 26 Out 2009 9:17 am |
|
|
Show de Bola...
Funcionou... do BARALHO...
Vlw Mesmo....
Abç
_________________ Dulima
DBA Oracle Jr
|
|
Dulima-SP Rank: DBA Júnior

Registrado em: Qui, 24 de Janeiro de 2008 Mensagens: 186 Cidade - UF: SP
|
|
|
 |
|