- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 18 anos, 4 meses atrás por
Ishii.
-
AutorPosts
-
12 de novembro de 2007 às 9:19 pm #80751
vieri
ParticipantePessoal,
Estou tentando fazer o refresh manualmente das Mview do meu schema.
SQL> EXECUTE dbms_mview.refresh(‘SDC_DW_REP.MV_DW_GEX’);
BEGIN dbms_mview.refresh(‘SDC_DW_REP.MV_DW_GEX’); END;*
ERROR at line 1:
ORA-01846: not a valid day of the week
ORA-06512: at “SYS.DBMS_SNAPSHOT”, line 2255
ORA-06512: at “SYS.DBMS_SNAPSHOT”, line 2461
ORA-06512: at “SYS.DBMS_SNAPSHOT”, line 2430
ORA-06512: at line 1Andei pesquisando o porque desse erro e verifiquei o seguinte :
Meu parâmetros de banco :
SQL> show parameters nls
NAME TYPE VALUE
———————————— ———– ——————————
nls_calendar string
nls_comp string
nls_currency string
nls_date_format string
nls_date_language string
nls_dual_currency string
nls_iso_currency string
nls_language string AMERICAN
nls_length_semantics string BYTE
nls_nchar_conv_excp string FALSE
nls_numeric_characters stringNAME TYPE VALUE
———————————— ———– ——————————
nls_sort string
nls_territory string AMERICA
nls_time_format string
nls_time_tz_format string
nls_timestamp_format string
nls_timestamp_tz_format stringGerei o script de criação da mvs e verifiquei que no intervalo
do job semanal, o NEXT está como ‘SABADO’ ao inves de ‘SATURDAY’
como de comum.Estudando verifiquei que alterando o parâmetro a nivel de sessão para
nosso portugues resolveria o problema.assim o fiz :
SQL> alter session set nls_date_language = ‘BRAZILIAN PORTUGUESE’;
Session altered.
confirmando :
SQL> SELECT value
FROM nls_session_parameters
WHERE parameter = ‘NLS_DATE_LANGUAGE’; 2 3VALUE
—————————————-
BRAZILIAN PORTUGUESEe continuei levando erro …
Alguem teria alguma sugestão de reverter esses
problemas sem ter que recriar todas as mvs ??agradecimentos antecipados…
abraços!!
12 de novembro de 2007 às 9:32 pm #80752Ishii
Participantevieri,
Vc já tentou alterar o client do Oracle para executar?
Tipo chave do registro \HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0 (ou HOME1 etc)NLS_LANG para BRAZILIAN PORTUGUESE.WE8ISO8859P1 (ou o que estiver configurado com o Oracle)
Lembro que os Jobs dão este tipo de problema…
[]s Ishii13 de novembro de 2007 às 8:13 pm #80781vieri
ParticipanteTentei colocar todos os parametros
nls da minha sessão igual ao do job e nadaSQL> select * from NLS_SESSION_PARAMETERS;
PARAMETER VALUE
NLS_LANGUAGE BRAZILIAN PORTUGUESE
NLS_TERRITORY BRAZIL
NLS_CURRENCY R$
NLS_ISO_CURRENCY BRAZIL
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE BRAZILIAN PORTUGUESE
NLS_SORT WEST_EUROPEAN
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFFPARAMETER VALUE
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY Cr$
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE17 rows selected.
SQL> select nls_env from dba_jobs
2 where job = 144;NLS_ENV
NLS_LANGUAGE=’BRAZILIAN PORTUGUESE’ NLS_TERRITORY=’BRAZIL’ NLS_CURRENCY=’Cr$’ NL
S_ISO_CURRENCY=’BRAZIL’ NLS_NUMERIC_CHARACTERS=’,.’ NLS_DATE_FORMAT=’DD/MM/RR’ N
LS_DATE_LANGUAGE=’BRAZILIAN PORTUGUESE’ NLS_SORT=’WEST_EUROPEAN’tentando rodar o job da mv na mão e + erro.
SQL> execute dbms_job.run(144);
BEGIN dbms_job.run(144); END;*
ERROR at line 1:
ORA-23421: job number 144 is not a job in the job queue
ORA-06512: at “SYS.DBMS_SYS_ERROR”, line 86
ORA-06512: at “SYS.DBMS_IJOB”, line 529
ORA-06512: at “SYS.DBMS_JOB”, line 258
ORA-06512: at line 1SQL> select failures,broken from dba_jobs where job = 144 ;
FAILURES B
16 Yo job tentou executar 16 vezes e ficou em broken.
Como uma materialized view foi criada com sucesso e de ums tempos pra cá se perdeu dessa maneira.
Será que tem solução!?tem como resgatar esse job?
tentei alterar os registros do client mais não adiantou
13 de novembro de 2007 às 8:39 pm #80782Ishii
ParticipanteVieri,
Acho que o problema está mesmo na Materialized View, faça o seguinte teste:
Altere o Registro do Client Oracle com os parâmetros que vc havia identificado, abra novamente o SQL*PLus e execute o primeiro comando dbms_mview.refresh
Verifique o texto da Materialized View e veja se não está nele alguma formatação de data.
Se for possível converter do Job para um Scheduler (dbms_scheduler)…
[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.