Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #80751
    vieri
    Participante

      Pessoal,

      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 1

      Andei 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 string

      NAME 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 string

      Gerei 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 3

      VALUE
      —————————————-
      BRAZILIAN PORTUGUESE

      e continuei levando erro …

      Alguem teria alguma sugestão de reverter esses
      problemas sem ter que recriar todas as mvs ??

      agradecimentos antecipados…

      abraços!!

      #80752
      Ishii
      Participante

        vieri,

        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 Ishii

        #80781
        vieri
        Participante

          Tentei colocar todos os parametros
          nls da minha sessão igual ao do job e nada

          SQL> 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:SSXFF

          PARAMETER 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 FALSE

          17 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 1

          SQL> select failures,broken from dba_jobs where job = 144 ;

          FAILURES B


              16 Y
          

          o 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

          #80782
          Ishii
          Participante

            Vieri,

            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

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.