Inquiridor
Agendamento de Procedure

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