存储过程中使用 database link
s:= 'select   aa   from   table1@aaa '; 
 execute   immediate   s      into   Rst;     
 调用这个存储过程的时候怎么提示     
 ORA-02041:   客户数据库未开始一个事务处理\nORA-06512     
 再pl/sql工具中执行是没有问题的
------解决方案--------------------估计要求启动一个分布式的事务。
------解决方案--------------------改成这样不好吗? 
 s:= 'select aa from table1@aaa into Rst '; 
 execute immediate s  ; 
------解决方案--------------------启用分布式事务: 
 1、运行 regedt32,浏览至 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC。 
 添加一个 DWORD 值 TurnOffRpcSecurity,值数据为 1。 
 2、重启MS DTC服务。 
 3、打开“管理工具”的“组件服务”。 
     a.  浏览至 "启动管理工具 "。  
     b.  选择 "组件服务 "。  
     c.  展开 "组件服务 "树,然后展开 "我的电脑 "。  
     d.  右键单击 "我的电脑 ",然后选择 "属性 "。  
       在 MSDTC 选项卡中,确保选中了下列选项:  
 网络 DTC 访问 
 网络管理 
 网络事务 
 XA 事务 
 另外, "DTC 登录帐户 "一定要设置为 "NT Authority\NetworkService "。  
 4、重启MS DTC服务。 
 5、再次运行 regedt32,浏览至 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC,然后删除 TurnOffRpcSecurity 项。
------解决方案--------------------建議樓主到百度www.baidu.com 
 搜一搜“ORA-02041: 客户数据库未开始一个事务处理\nORA-06512” 
 有很多類似樓主的問題