Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

In stored procedure I am using below statements. But it throwing Distributed transaction error when I ran Stored Proc.

Declare @res int
    Declare @mes as varchar(100)

    DECLARE  @Result TABLE (
result INT,
mesage VARCHAR(100))

    Insert @Result (result, mesage)         
            Exec [MySpeNet].[dbo].[GetMemberShipStatus]'3319994'
    select @res = result, @mes = mesage from @Result

Exception:

      Msg 7391, Level 16, State 2, Procedure GetMemberShipStatus, Line 19
    The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" 
for linked server "ASPQA" was unable to begin a distributed transaction.

OR

Is there any other way that I can store result and mesage without creating Temp table?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
309 views
Welcome To Ask or Share your Answers For Others

1 Answer

Enable the options

  • Allow Remote Clients
  • Allow Outbound

On Security tab of Local DTC Properties in Component Services.

  • Go To Run, type comexp.msc.
  • Double click "Console Root".
  • Double click "Component Services.
  • Double click "Computers".
  • Double click "My Computer".
  • Double click "Distributed Transaction Coordinator".
  • Right click "Local DTC" under "Distributed Transaction Coordinator", and click properties.
  • Click the "Security" tab.
  • Put tick marks on the checkboxes "Allow Remote Clients" and "Allow Outbound".

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...