Ronie

Também já tive problemas com pessoal dos fornecedores de "pacotes" 
que insistem que não há problema na aplicação... botam a culpa na 
versão do Oracle, no sistema operacional, blá-blá-blá...

Mas tem que ter MUITA paciência nessas horas e demonstrar (ou 
melhor, **provar**) a causa do erro.

Certamente a culpa NÃO é da versão do Oracle!
Qualquer TO_NUMBER('string') pode gerar esse erro.
Então o que causa isso é o ***CONTEÚDO*** da tabela: no BD do 9i 
deve haver só strings válidas na conversão, mas no BD do 10g deve 
ter alguns casos de dados inválidos para a TO_NUMBER.

Você pode utilizar a função que o Ivan passou, para achar esses 
casos. =^D

Exemplo:
---------------------------------
SELECT
 RTRIM(SUBSTR(CD_USUARIO,1,3)) AS CAT_CART,
 RTRIM(SUBSTR(CD_USUARIO,4,10)) AS COD_IDEN,
 RTRIM(NUM_CARTAO)) AS NREXTCAR,
 FROM schema.view_do_fornecedor
 WHERE SUBSTR(CD_USUARIO,1,3) IN
 ('101','102','103','104','105','106',
 '107','108','109','110','111','112','113')
 AND
 (
    IS_NUMBER(RTRIM(SUBSTR(CD_USUARIO,1,3))) IS NULL
 OR IS_NUMBER(RTRIM(SUBSTR(CD_USUARIO,4,10))) IS NULL
 OR IS_NUMBER(RTRIM(NUM_CARTAO)) IS NULL
 );
---------------------------------

Crie a função IS_NUMBER que o Ivan mandou e faça a consulta acima.
Isso deve retornar os dados que causam o problema.

[ ]

André


--- Em oracle_br@yahoogrupos.com.br, "khraken" <[EMAIL PROTECTED]> 
escreveu
>
> Olá André e Ivan!
> Bom dia e grato por responder!
> A bem da verdade o que ocorre é o seguinte:
> 
> Temos um software de uma empresa de SP que faz controle de acesso 
dos
> funcionários do prédio. Nossa versão atual dos softwares são: Rh 8 
e
> Oracle 9.2.0.4. A intenção é migrar para RH AS Linux 4.0 com Ora 
10gR2
> (10.2.0.1.0). Um dos acordos com a empresa dona do software que 
faz o
> controle de acesso é que não podemos ter acesso direto às tabelas 
do
> mesmos, então acessamos algumas informações de lá através de VIEWS.
> Bom, o acesso que apresenta o erro está vindo de uma outra view que
> temos aqui, pottanto view fazendo select em outra view.
> Nos testes anteriores com 10gR2, onde peguei o problema, encontrei
> como solução para a questão, forçar o to_char dentro do where uma 
vez
> que percebi que a conversão prá to_number não estava ocorrendo e 
aí, o
> erro não apareceu mais. Então pedi aos Analistas de Desenvolvimento
> que alterassem as aplicações e boa. Isso foi em 01/12/05. "ELES NÃO
> ALTERARAM", pois insistem que uma vez que funciona no 9i, tem que
> funcionar no 10g.... e bla,bla... Abaixo a view e o sql que acessa:
> 
> CREATE OR REPLACE VIEW VISAO ("CAT_CART","COD_IDEN","NREXTCAR") 
> AS SELECT
> TO_NUMBER(RTRIM(SUBSTR(CD_USUARIO,1,3)),'999') AS CAT_CART,
> TO_NUMBER(RTRIM(SUBSTR(CD_USUARIO,4,10)),'9999999999') AS COD_IDEN,
> TO_NUMBER(RTRIM(NUM_CARTAO)) AS NREXTCAR,
> FROM schema.view_do_fornecedor
> WHERE SUBSTR(CD_USUARIO,1,3) IN 
('101','102','103','104','105','106',
> '107','108','109','110','111','112','113') WITH CHECK OPTION ;
> 
> select a.cat_cart, a.cod_iden 
> FROM
> smart.v1 a,
> smart.v6 b,
> smart.v42 c
> WHERE
> a.cat_cart = c.cat_cart and a.cod_iden = c.cod_iden
> and b.data is not null
> and (b.uni = 'DAC')
> and (a.cat_cart = 108)
> and (a.cat_cart = b.cat_cart and a.cod_iden = b.cod_iden)
> and (b.dainccar is not null)
> and rownum < 11;
> 
> OBS: cat_cat e cod_iden em V1,V6 e V42 são numbers.
> 
> 
> SQL> desc v42;
> 
> CAT_CART     NUMBER
> COD_IDEN     NUMBER
> NREXTCAR     NUMBER
> 
> 
> SQL> @sql.sql
> select a.cat_cart, a.cod_iden, a.tmovuni, b.dainccar
>                  *
> ERROR at line 1:
> ORA-01722: invalid number
> 
> 
> Relembrando, o erro não ocorre no 9i.
> 
> 
> Agradeço pelas sugestões.
> Lamento e peço desculpas aos demais pela extensão do texto.
> Meus respeitos à todos,
> Cordialmente,
> 
> Ronie Ramos de Oliveira
> DBA - Unicamp.
>






--------------------------------------------------------------------------------------------------------------------------
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/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
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