Array
(
)

Erro ao executar Trigger

Marcio Morando
   - 30 mai 2014

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:
#Código

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.

João Antonio
|
MVP
Pontos: 100
    11 jun 2014

Bom dia Marcio,

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

Att.
João Antonio

Marcio Morando
   - 11 jun 2014

SQLServer 2012.

João Antonio
|
MVP
Pontos: 100
    16 jun 2014

Boa Tarde Marcio,

E a edição,

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

Att.
João Antonio

Marcio Morando
   - 16 jun 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)

João Antonio
|
MVP
Pontos: 100
    16 jun 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.