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