André, o  timezone da aplicação está diferente porque provavelmente a
sessão de usuário da aplicação havia sido criada antes da alteração do
timezone no SO.

Consulte a V$SESSION, encontre o usuário da aplicação e veja se realmente
se ele abriu a sessão antes da troca. Se abriu, é simples, mate a sessão
dele e mande se conectar no Bd novamente. Se for aplicação web, verifique
se há um pool de conexões e restarte elas, se existir!

Se ainda assim, o horário estiver com atraso, veja as recomendacoes que o
Chiappa deu para configurar o timezone da sessão.

[]s



Em 24 de outubro de 2013 18:57, André Luiz Silva <mennuci...@gmail.com>escreveu:

> **
>
>
> Fábio e Chiappa muito obrigado pelo retorno,
>
> A solicitação para alterar o TZ do SO partiu da fabricante do software que
> roda neste  DB, hoje o TZ do SO do servidor está em GMT  —02:00 já que
> estamos em sp e no horário de verão o que está correto na minha opinião.
>
> Más o horário que aparece nas telas e relatórios da aplicação estão com
> uma hora em atraso e eles alegam que a solução é alterar o fuso do SO para
> —03:00 já que segundo eles este é o TZ do Brasil
>
> Abs e obrigado novamente.
>
> Ps.já alterei o TZ do DB para —03:00 e não surtiu o efeito esperado.
> Em 24/10/2013 15:28, "J. Laurindo Chiappa" <jlchia...@yahoo.com.br>
> escreveu:
>
>> **
>>
>>
>> Sim, a função SYSTIMESTAMP retorna ** todas ** as suas informações a
>> partir do clock e do calendário ativos no servidor que hospeda o RDBMS, sim
>> - o manual apropriado "Oracle® Database SQL Language Reference 11g Release
>> 2" na entrada sobre ela textualmente diz (ênfase com *s minha)
>>
>> "
>> Purpose
>>
>> SYSTIMESTAMP returns the system date, including fractional seconds ***
>> and time zone ** , of the system ** on which the database resides **.
>> "
>>
>> ok ? NOTAR, porém, que EXISTE sim a propriedade de TIMEZONE no database
>> (ela é uma das propriedades que vc informa na criação do database, veja no
>> CREATE DATABASE a opção de SET TIMEZONE) , E além disso existe também a
>> timezone-default para a sessão, que pode ser alterada via environment como
>> Qualquer Outra propriedade de uma sessão... Então a pergunta é, QUAL desses
>> timezones vc quer alterar ??? O timezone do ambiente/SO vc altera no SO (e,
>> DA MESMA MANEIRA que uma alteração de data/hora, em princípio NÂO DEMANDA
>> um restart do database, já que o database é INDIFERENTE ao clock do
>> servidor, ele se controla via SCN), o timezone do DB vc pode alterar com
>> ALTER DATABASE SET TIME_ZONE='valorsesejado', e o da sessão vc altera via
>> variável de ambiente ( ou ALTER SESSION, iirc) .... Um exemplo :
>>
>> SQL> select systimestamp from dual ;
>>
>> SYSTIMESTAMP
>> ----------------------------------------------------------
>> 24/10/13 14:26:06,871000 -02:00
>>
>> SQL> SELECT DBTIMEZONE FROM DUAL;
>>
>> DBTIME
>> ------
>> +00:00
>>
>> SQL> select current_timestamp from dual;
>>
>> CURRENT_TIMESTAMP
>> ----------------------------------------------------------
>> 24/10/13 14:36:17,603000 -02:00
>>
>> => ok, na falta de especificação o current timestamp assumiu o do
>> servidor E a sessão (o CURRENT_TIMESTAMP no mesmo manual acima citado tá
>> documentado que registra a TZ da sessão) seguiu... Vou alterar o timezone
>> da sessão :
>>
>> SQL> exit
>>
>> C:\Windows\system32>set ORA_SDTZ=+05:00
>>
>> C:\Windows\system32>echo %ORA_SDTZ%
>> +05:00
>>
>> C:\Windows\system32>sqlplus system/oracle
>>
>> .....
>>
>> SQL> select current_timestamp from dual;
>>
>> CURRENT_TIMESTAMP
>> ----------------------------------------------------------
>> 24/10/13 21:42:52,673000 +05:00
>>
>> SQL> SELECT DBTIMEZONE FROM DUAL;
>>
>> DBTIME
>> ------
>> +00:00
>>
>> SQL> select systimestamp from dual ;
>>
>> SYSTIMESTAMP
>> ----------------------------------------------------------
>> 24/10/13 14:43:05,546000 -02:00
>>
>> SQL>exit
>>
>> => okdoc ? não alterei a tz do database, E não alterei a do ambiente/SO
>> (então AMBAS permaneceram a mesma, E a systimestamp como documentado
>> derivou do SO/servidor), ** MAS ** o tz da sessão foi SIM alterado... Agora
>> vou mudar no SO para GMT-1 (Açores) , e veja (SEM nenhum reboot do servidor
>> nem restart do banco) :
>>
>> C:\Windows\system32>sqlplus system/oracle
>>
>> ...
>>
>> SQL> select systimestamp from dual ;
>>
>> SYSTIMESTAMP
>> ----------------------------------------------------------
>> 24/10/13 16:07:36,060000 -01:00
>>
>> SQL> SELECT DBTIMEZONE FROM DUAL;
>>
>> DBTIME
>> ------
>> +00:00
>>
>> SQL> select current_timestamp from dual;
>>
>> CURRENT_TIMESTAMP
>> ----------------------------------------------------------
>> 24/10/13 22:07:48,270000 +05:00
>>
>> SQL> exit
>>
>> ==> Tá jóia ???
>>
>> E aí vem a SEGUNDA pergunta, POR QUE/PARA QUE vc quer mudar a TZ
>> reportada pelo SYSTIMESTAMP ??? Pergunto isso porque se for para mudar TZ
>> de SCHEDULER JOBs, vc muda esse atributo diretamente com as built-ins de
>> JOBs, por exemplo.... Dia aí o que vc quer/precisa que talvez a gente possa
>> palpitar melhor...
>>
>> []s
>>
>> Chiappa
>>
>> --- Em oracle_br@yahoogrupos.com.br, André Luiz Silva <mennuciano@...>
>> escreveu
>> >
>> > Pessoal bom dia, tudo bem?
>> >
>> > O timezone retornado na consulta select systimestamp from dual pertence
>> ao
>> > DB ou ao SO? Pelo que andei pesquisando este é o timezone do SO onde o
>> > RDBMS está instalado correto? Se sim alguém já teve que alterar? Quais
>> são
>> > os steps? É necessário stop/start da instance?
>> >
>> > DB: ora 11g
>> > SO: windows 2003
>> >
>> > Atenciosamente
>> > André
>> >
>>
>>     
>



-- 
Fábio Prado
www.fabioprado.net
"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados
Oracle"

Responder a