Erro ao executar Trigger

30/05/2014

0

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:

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

Marcio Morando

Responder

Posts

11/06/2014

João Françozo

Bom dia Marcio,

Qual a versão do SQL Sever você esta usando e sua edição.


Att.
João Antonio
Responder

11/06/2014

Marcio Morando

SQLServer 2012.
Responder

16/06/2014

João Françozo

Boa Tarde Marcio,

E a edição,

Roda esse comando no select @@version e posta o resultado.


Att.
João Antonio
Responder

16/06/2014

Marcio Morando

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)
Responder

16/06/2014

João Françozo

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar