none
Agendamento de Procedure RRS feed

  • Pergunta

  • Bom dia, Eu desenvolvi uma Procedure de geração de arquivo e a joguei em um JOB para ser gerada mensalmente em data Xe hora X, so que quando chega a essa hora/data a procedure era o seguinte erro:

    "Job: EMISSAO MAPA REPASSE BCO ITAU AIG erro: System.IndexOutOfRangeException: Linha
       at System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName)
       at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
       at ConectaSolutions.EDI.ExecutorDeJobs.CriarArquivo(AdoDataReader dr, Steve job)
       at ConectaSolutions.EDI.ExecutorDeJobs.ExecutarRotinaConfiguradaNoBanco(Steve steve)"

    PS: Se eu abrir a procedure, declarar as variaveis e der um EXEC ela me trás o resultado, mas quando agendo ela gera esse erro, detalhe no JOB vai uma Procedure que só manda executa essa de geração de arquivo, a Procedure que chama a de geração está ok pois já fiz o teste com outra Procedure.

    terça-feira, 26 de novembro de 2013 13:14

Todas as Respostas

  • Fala Vitor,

    Cara, como você mesmo disse, se você declara as variáveis e executa a consulta retorna corretamente. 

    NO seu job as mesmas variáveis estão corretas? Pode ser que alguma consulta esteja faltando um parametro no meio da proc e então quando você tenta realizar a iteração ocorre esse erro, afinal a lista(array) deveria estar preenchido, mas não está.

    Abs

    terça-feira, 26 de novembro de 2013 13:42
  • Estão declaradas corretamente cara, eu uso outra proc só pra chamar essa proc, a proc que chama está tudo ok pois defini pra chamar outra proc e rodou, essa proc é bem simples eu crio uma tabela temporária e deu um select e peço pra inserir usando um char divisor.
    terça-feira, 26 de novembro de 2013 13:50
  • Vitor,

    VOcê diz char divisor isso aqui? SELECT  MEUVALOR/12 from TABLE

    Acho que eu to enganado né?

    Pq pelo que eu entendi em algum momento você está tentando acessar algum index no array que não existe. Nessa tabela temp você está fazendo tratamento de string é isso? substring e tals para inserir o valor que quer tratado? Tenta remover qualquer tratamento no select dessa tbl temp, insere somente os valores que retornam do select mesmo.

    Abs

    terça-feira, 26 de novembro de 2013 14:15
  • Cara eu crio uma tabela temp depois dou um select insert na tabela temp e depois eu faço um union all com o Char divisor para gerar o arquivo.

    Quer dar uma olhada no código? 

    terça-feira, 26 de novembro de 2013 15:12