Chiappa,

Obrigado pela resposta. 

Tirando uma duvida...

Se eu coloco um TO_NUMBER


SELECT a.campo1, a.campo2, b.campo1, b.campo2
  FROM tabela1 a, tabela2 b,
 WHETE a.campo3 = to_number(b.campo3);


Eu prejudico as regras pra escolha do índice, não é isso!????

Obrigado.

Eduardo.


-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: quarta-feira, 29 de Março de 2006 14:43
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: conversão implicita de dados não funciona

Colega, como citado no manual "Oracle SQL Reference" capítulo de 
Datatypes, conversão implícita é feita INTERNAMENTE pelo banco, vc 
absolutamente não tem controle sobre ela, ela depende do contexto 
(ie, settings os mais diversos, plano de execução escolhido, etc) 
cito :

"Implicit and Explicit Data Conversion
Oracle recommends that you specify explicit conversions rather than 
rely on implicit or automatic conversions, for these reasons:

SQL statements are easier to understand when you use explicit 
datatype conversion functions. 
Automatic datatype conversion can have a negative impact on 
performance, especially if the datatype of a column value is 
converted to that of a constant rather than the other way around. 
Implicit conversion depends on the context in which it occurs and may 
not work the same way in every case. For example, implicit conversion 
from a date value to a VARCHAR2 value may return an unexpected year 
depending on the value of the NLS_DATE_FORMAT parameter. 
Algorithms for implicit conversion are subject to change across 
software releases and among Oracle products. Behavior of explicit 
conversions is more predictable."

Assim, PROVAVELMENTE se vc tiver as mesmas estatísticas no mesmo 
characterset nas mesmas linguagens com o mesmo config nos dois 
bancos, a conversão implícita DEVE ocorrer da mesma maneira, mas COM 
CERTEZA é uma loteria, não há garantias, vc está confiando em algo 
que pode ou não funcionar.... Com 100% de certeza, desse jeito não dá 
pra trabalhar, ou tenha informações semelhantes no mesmo datatype (o 
que é simplesmente correto de se fazer), OU use explicitamente a 
conversão desejada, sem atalhos aqui.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "Oracle Mail" <[EMAIL PROTECTED]> 
escreveu
>
> Pessoal,
> 
> Possuo um banco de desenvolvimento e um banco de produção que em 
termos de
> base de dados estão idênticos.
> 
> O banco de produção é configurado como American.america enquanto o 
banco de
> Desenvolvimento está como portuguese.portugal
> 
> Uma query que compara dois campos de datatypes diferentes e valores 
dos
> dados iguais só funciona em desenvolvimento se for colocado 
explicitamente o
> To_NUMBER para que a conversão de dados de um campo da query 
ocorra. No caso
> do banco de produção essa necessidade já não existe.
> 
> Alguém saberia me dizer se existe alguma relação entre o caracter 
set e o
> problema enfrentado.... Se sim.... como corrigir?
> 
> Alguém tem alguma dica que possa me ajudar!?
> 
> 
> Antecipadamente
> 
> Obrigado.
> 
> Eduardo.
>






----------------------------------------------------------------------------
----------------------------------------------
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. 
Links do Yahoo! Grupos




 





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