Erro ao executar Trigger
Boa Tarde Pessoal,
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:
O que pode ser o erro?
Muito Obrigado.
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
Curtidas 0
Respostas
João Françozo
30/05/2014
Bom dia Marcio,
Qual a versão do SQL Sever você esta usando e sua edição.
Att.
João Antonio
Qual a versão do SQL Sever você esta usando e sua edição.
Att.
João Antonio
GOSTEI 0
Marcio Morando
30/05/2014
SQLServer 2012.
GOSTEI 0
João Françozo
30/05/2014
Boa Tarde Marcio,
E a edição,
Roda esse comando no select @@version e posta o resultado.
Att.
João Antonio
E a edição,
Roda esse comando no select @@version e posta o resultado.
Att.
João Antonio
GOSTEI 0
Marcio Morando
30/05/2014
Microsoft SQL Server 2012 - 11.0.2316.0 (X64)
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)
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)
GOSTEI 0
João Françozo
30/05/2014
Da uma olhada nesse site.
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.
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.
GOSTEI 0