Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 具有分布式事务的链接服务器:无法读取数据_Sql Server_Oracle - Fatal编程技术网

Sql server 具有分布式事务的链接服务器:无法读取数据

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

我们正在将数据从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       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连接中指定了相同的全局事务?恐怕还需要更多的细节;-)