Por partes aí : PRIMEIRO DE TUDO, nós todos (imagino) aprendemos a 
duras penas que pra se definir um ano corretamente, sem chance de 
falhas, nós TEMOS QUE TER 4 dígitos, sem choro nem vela - o rr usa um 
algoritmo que nem sempre é infalível. Por exemplo, suponha que a data 
seja uma data de nascimento, como o meu pai que nasceu em 1949, se 
fosse entrado com rr no seu sitema olha lá o que teríamos :

[EMAIL PROTECTED]:SQL>select to_char(to_date
('23/06/49', 'dd/mm/rr'), 'dd/mm/yyyy hh24:mi:ss') from dual;

TO_CHAR(TO_DATE('23
-------------------
23/06/2049 00:00:00

coitada, a pessoa só vai nascer NO FUTURO!!! É de dar nó na cuca, e 
ele já me mostrou umas tantas quantas correspondências enviadas por 
mala direta assim, é de doer, não faça isso please...

Ponto principal : já foi dito algumas vezes e repito agora, as 
variáveis NLS_xx que vc seta no banco (incluindo NLS_DATE_FORMAT) , 
****** NÂO SÃO ****** coisa nenhuma padrão, elas são DEFAULTs, e como 
todo e qquer default só entram em açao SE e APENAS SE não é fornecido 
nenhum valor... No banco Oracle, quem MANDA em configs de 
globalização (seja pra EXIBIR, seja pra GRAVAR) é SEMPRE O CLIENTE, 
os valores do banco só são usados se o cliente não passar nada...
 Pelo jeito que vc diz, na máquina de desenvolvimento OU não foi 
fornecido nada para NLS (e aí  o default do banco é acionado) ou em 
desenv as vars NLS estão setadas corretamente, e em produção não.... 
A recomendação é uma só portanto, CONFIGURE CORRETAMENTE AS VARS 
NLS_xx OS SEUS CLIENTES, é isso. No seu caso em especial, iirc o .net 
aciona o banco via driver .net, e esse driver é incapaz de o fazer 
diretamente, ele PRECISA que o software client Oracle esteja 
presente, então vc terá que configurar o client Oracle no mínimo - 
como não desenvolvo em .net, não sei se além disso há config no 
driver e no ambiente...
 
 Complemento : quando se fala de datas, eu sempre, totalmente, 
absolutamente, RECOMENDO QUE vc  NUNCA CONFIE em settings, e sempre 
forneça exatamente o formato que vc quer - assim, se hoje vc tem no 
seu programa uma variável string V_DATA com o valor '01/12/2007' 
digamos, hoje vc deve estar fazendo na aplicação algo tipo :
 
 INSERT INTO nomedatabela (..., colunatipoDATE) .... VALUES(..., 
v_data)
 
 ou seja, vc CONFIA no nls_date, é prática assegurada de programação 
DEFENSIVA vc codificar :
 
 INSERT INTO nomedatabela (..., colunatipoDATE) .... VALUES(..., 
TO_DATE(v_data, 'dd/mm/yyyy') )
 
 yes ???? 
 
 []s
 
  Chiappa
  
--- Em oracle_br@yahoogrupos.com.br, Carlos Henrique Correa 
<[EMAIL PROTECTED]> escreveu
>
> Boa tarde, estamos com uma dúvida que já procuramos na net e não 
encontrmos ainda uma solução completa.
>    
>   Temos uma aplicação .Net que rodando via micro de desenvovlimento 
nos conseguimos gravar os dados em uma tabela específica normalmente, 
mas quando publicamos a aplicação no servidor de aplicações e fazemos 
o teste, recebemos uma mensagem de erro no formato da data dizendo 
que o mês está inválido. Nossa dúvida é ao rodar a aplicação da 
máquina de desenvovlimento conseguimos gravar a data e do servidor de 
aplicação não conseguimos??? Já verificamos os formatos de data no 
banco e estão configurados para o padrão DD/MM/RR e mesmo assim não 
conseguimos gravar os dados do servidor de aplicação.
>    
>   Dados do Ambiente:
>    
>   Serv. Aplicação
>   win 2003 + Cliente Oracle 10.2.0.1
>    
>   Serv. Desenvolvimento:
>    win XP + Cliente Oracle 10.2.0.1
>    
>   Serv. Banco:
>   Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod
> PL/SQL Release 10.1.0.2.0 - Production
> CORE    10.1.0.2.0      Production
> TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
> NLSRTL Version 10.1.0.2.0 - Production
>   Oracle Linux
>    
>   Atenciosamente,
>    
>   Carlos Henrique
>   Prefeitura de Resende
> 
>  __________________________________________________
> Fale com seus amigos  de graça com o novo Yahoo! Messenger 
> http://br.messenger.yahoo.com/ 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a