Sql server 具有分布式事务的链接服务器:无法读取数据
我们正在将数据从Oracle服务器发送到SQL服务器。 我想在SQL端执行的操作:我想选择在Oracle端插入的数据,以进行一些插入/更新检查 举个例子: 在Oracle端,我在LANG_PARAM表中插入一个值:Sql server 具有分布式事务的链接服务器:无法读取数据,sql-server,oracle,Sql Server,Oracle,我们正在将数据从Oracle服务器发送到SQL服务器。 我想在SQL端执行的操作:我想选择在Oracle端插入的数据,以进行一些插入/更新检查 举个例子: 在Oracle端,我在LANG_PARAM表中插入一个值: insert into lang_param values p_rec ; 在SQL Server端,我尝试读取数据并将其填入参数: SELECT @Id = LANG_PARAM_ID FROM LANG_PARAM WHERE L
insert into lang_param
values p_rec
;
在SQL Server端,我尝试读取数据并将其填入参数:
SELECT @Id = LANG_PARAM_ID
FROM LANG_PARAM
WHERE LANG_PARAM_ID = @lang_Param_Id
但我总是得到零回。因为我没有发现关于这个案子的任何东西,所以这是不可能的,或者我需要设置一些东西吗
顺便说一句,我在select上剪切了链接服务器的名称,但它会在那里
提前感谢,本周有一个良好的开端
Matthias在尝试在SQL Server中选择之前,您是否在Oracle中提交了insert?您的LANG_PARAM_ID列是什么数据类型?我们遇到的问题是,如果Oracle中的列只是
数字
,没有任何精度/刻度,那么SQL Server将尝试转换为字符串,因为它无法确定需要使用什么数字
数据类型。请尝试在SQL Server中创建一个视图,如select*from LANG_PARAM
(当然包括链接的服务器名称),然后在SQL Server中查看该视图的列获得了哪些数据类型。据我所知,只要我在同一事务中,我就不必提交事务来获取数据?还是我错了?那我可能不理解你的设置。分布式事务是指Oracle XA(X/Open)?在Oracle中插入的代码如何知道它与SQL Server中的select是同一事务的一部分?插入实际上是在SQL server上与选择服务器在同一连接上执行的吗?或者您是否使用事务管理器启动了全局事务,并在Oracle连接和SQL Server连接中指定了相同的全局事务?恐怕还需要更多的细节;-)