none
Delete em linked server vai JOB RRS feed

  • Pergunta

  • Bom dia.

    Tenho um job, com execução diária, onde em uma das etapas é chamada uma procedure que executa um delete em um ambiente Oracle via Linked Server, porém ocorre um erro na execução deste comando. Caso eu execute o delete manualmente, utilizando exatamente o mesmo código da procedure, ele ocorre sem problemas, mas ao executar no JOB apresenta o erro abaixo:

    Msg 7392, Sev 16, State 2, Line 17 : Cannot start a transaction for OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLE_DB". [SQLSTATE 42000]
    Msg 7412, Sev 16, State 1, Line 17 : OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLE_DB" returned message "The requested isolation level is not valid or supported.". [SQLSTATE 01000]

    O código da procedure está conforme abaixo:

    CREATE PROCEDURE [dbo].[delete_oracleDB]
    
    AS 
    
    BEGIN 
    
    DELETE 
    	PV  
    FROM 
    	[ORACLE_DB]..[schema].[tabela] PV
    JOIN 
    	tabela_local BIB
    ON 
    	PV.COD = BIB.COD_
    	AND BIB.DATA_VALIDADE IS NULL 
    	AND BIB.COD_CATEG_USUARIO = '9'
    END

    Procurei em fóruns e não consegui encontrar nenhum cenário semelhante pra buscar uma resolução, poderiam me ajudar?


    Grato.

    segunda-feira, 17 de junho de 2019 14:53

Respostas

  • Bom dia Junior!

    Agradeço pelo retorno! Eu descobri a origem do problema.

    No primeiro step do job é executada uma package do Integration Services que estava alterando o Isolation Level no momento da execução. Infelizmente eu não consegui alterar a package, mas eu separei as duas execuções, conseguindo concluir com sucesso o meu delete.

    Novamente, muito obrigado pelo seu esforço.

    terça-feira, 18 de junho de 2019 12:07

Todas as Respostas

  • José,

    A execução desta Stored Procedure esta sendo feita em um step deste job, mas através de qual comando ela esta sendo executada?

    Seria Exec ou Execute?

    A mensagem esta informando de uma alteração no Isolation Level para, o que é executado antes desta stored procedure por parte deste job?

    Faça um teste, ao invês de chamar a Stored Procedure no Step, declare o código da Stored Procedure diretamente na execução do Step, verifique se o erro persiste.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    segunda-feira, 17 de junho de 2019 17:57
  • Bom dia Junior!

    Agradeço pelo retorno! Eu descobri a origem do problema.

    No primeiro step do job é executada uma package do Integration Services que estava alterando o Isolation Level no momento da execução. Infelizmente eu não consegui alterar a package, mas eu separei as duas execuções, conseguindo concluir com sucesso o meu delete.

    Novamente, muito obrigado pelo seu esforço.

    terça-feira, 18 de junho de 2019 12:07
  • José,

    Que bom, fico feliz, era justamente o que a mensagem estava alertando, mundança no nível de isolamento, por isso eu questionei o que era feita então do processamento deste step.

    Abraços.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 19 de junho de 2019 10:49