Sql server 从Oracle数据库中获取每条记录并将其插入SQL Server数据库表,而不丢失任何数据?

Sql server 从Oracle数据库中获取每条记录并将其插入SQL Server数据库表,而不丢失任何数据?,sql-server,sql-job,Sql Server,Sql Job,我已经设置了一个SQL Server作业,将数据从Oracle数据库提取到SQL Server数据库表中,但每当需要提取批量数据时,该作业都无法将所有可能的记录插入SQL Server表中 尝试使用链接服务器和SQL作业从Oracle Server获取数据时,发现SQL Server中存在问题 insert into customers ( address, name ) select address, name from openquery([192.168.255.255],'sel

我已经设置了一个SQL Server作业,将数据从Oracle数据库提取到SQL Server数据库表中,但每当需要提取批量数据时,该作业都无法将所有可能的记录插入SQL Server表中

尝试使用链接服务器和SQL作业从Oracle Server获取数据时,发现SQL Server中存在问题

insert into customers
(
  address,
  name
)
select address, name from openquery([192.168.255.255],'select address, name from customer_info
where last_login_date > '''+@date+'''')
当有大量记录要从Oracle server数据库提取到SQL server数据库表时,就会出现问题。例如,如果要从Oracle Server中提取500条记录,则在SQL Server数据库中只插入了一半或更少的记录,而遗漏了一半


请注意,我每10秒运行一次SQL作业。我们必须每10秒运行一次作业,因此请求提供一些方法或途径,以通过任何可能的方式提取所有可能的数据。

什么让您认为是SQL Server端?这里有很多变量,比如
login\u date
过滤器。这里真的没有足够的信息来帮助你。你应该准确地找出哪些记录丢失了,你应该试验一下过滤器,看看它是否有区别,你应该检查SQL Server日志,看看是否有任何错误。我正在尝试使用类似的条件获取数据,其中批处理数据将插入到oracle中,并且这些数据必须基于日期过滤器获取到SQL表中。几天前,大约有600个数据在9秒内被插入到oracle中,但只有250个数据被成功获取,而其余的数据没有被获取。那么,是否有任何可能的方法可以将所有数据从Oracle数据库中提取到SQL表中,而不会丢失数据呢。请注意,在生产环境中,作业必须以10秒的间隔运行。它获取所有数据是正常操作,不知道问题出在哪里。根据您的描述,我不相信Oracle查询中没有误解。您是否检查了每台服务器(SQL server和任何填充上次登录日期的服务器)上的时钟?事务锁定如何?例如,当您试图读取数据时,数据仍在写入中?在指责数据库引擎删除了一半数据之前,有很多琐碎的事情需要先检查。什么是@date变量?如何计算每次作业运行的成本?