Erro ao executar Trigger
30/05/2014
0
Criei uma trigger que faz um select em dados no SQLServer2012, e a partir dos dados encontrados, escreve os mesmos em uma tabela no ORACLE 11G. Quando eu faço o insert individualmente, ele funciona normal, mas dentro da Trigger, ele gera o seguinte erro:
O provedor do OLE DB "OraOLEDB.Oracle" para o servidor vinculado "INTERFTRIMERP" retornou a mensagem "New transaction cannot enlist in the specified transaction coordinator. ".
Msg 7391, Level 16, State 2, Procedure InserePedidoQtdProgAlterada, Line 36
A operação não pôde ser realizada porque o provedor do OLE DB "OraOLEDB.Oracle" para o servidor vinculado "INTERFTRIMERP" não pôde iniciar uma transação distribuída.
A Trigger é a seguinte:
CREATE TRIGGER InserePedidoQtdProgAlterada ON Trimbox.dbo.Ofs AFTER INSERT,UPDATE AS DECLARE @IPEDIDO INTEGER, @IITEM INTEGER, @IQTDPROG INTEGER, @VOP VARCHAR(45), @VCODPED INTEGER BEGIN SELECT @VOP = OP FROM INSERTED; SELECT @IPEDIDO = CAST(LEFT(OP,(CHARINDEX('-',OP,1)-1))AS INTEGER) FROM INSERTED WHERE OP LIKE '%[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]/%' AND OP LIKE '%[0-9][0-9][0-9][0-9]-[0-9]%' AND OP LIKE '%[0-9][0-9]-[0-9]%' AND OP LIKE '%[0-9][0-9][0-9]-[0-9]%'; SELECT @IITEM = CAST(SUBSTRING(OP,7,2)AS INTEGER) FROM INSERTED WHERE OP LIKE '%[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]/%' AND OP LIKE '%[0-9][0-9][0-9][0-9]-[0-9]%' AND OP LIKE '%[0-9][0-9]-[0-9]%' AND OP LIKE '%[0-9][0-9][0-9]-[0-9]%'; SELECT @IQTDPROG = QuantidadeProgramada FROM INSERTED; IF (@IQTDPROG > 0 ) BEGIN SELECT @VCODPED = USU_NUMPED FROM INTERFTRIMERP..COSAPIENS.USU_TPEDPROG WHERE USU_NUMPED = @IPEDIDO ; IF (@VCODPED IS NULL) INSERT INTO INTERFTRIMERP..COSAPIENS.USU_TPEDPROG VALUES(@IPEDIDO,@IITEM,@IQTDPROG); ELSE UPDATE INTERFTRIMERP..COSAPIENS.USU_TPEDPROG SET USU_QTDPRG = @IQTDPROG WHERE USU_NUMPED = @IPEDIDO AND USU_SEQIPD = @IITEM; END END
O que pode ser o erro?
Muito Obrigado.
Marcio Morando
Posts
11/06/2014
João Françozo
Qual a versão do SQL Sever você esta usando e sua edição.
Att.
João Antonio
16/06/2014
João Françozo
E a edição,
Roda esse comando no select @@version e posta o resultado.
Att.
João Antonio
16/06/2014
Marcio Morando
Apr 6 2012 03:20:55
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
16/06/2014
João Françozo
http://msdn.microsoft.com/pt-br/library/cc645993.aspx
Acho que vai funcionar a publicação Oracle somente com Enterprise.
Att.
João Antônio.
Clique aqui para fazer login e interagir na Comunidade :)