在sql server中,我有一个带有ID的表。我通过循环通过openquery传递ID。
while @coun < 1000
begin
select @id=id from #temp where num = @coun
@sql = 'select * from tableoracle where id=' + @id
execute('insert into #temp2 select * from openquery(ORAC, ' + @sql+')')
set @coun = @coun + 1
End
我可以立即将ID作为一组发送,而不是一个一个地发送吗?
如果您在不带id的oracle中一次访问整个表,则请求将挂起, 很多数据
答案 0 :(得分:0)
找到解决方案
declare @a varchar(max) = (select '(' + stuff (
(SELECT ',''' +id + ''''
FROM #temp
for xml path('')),
1, 1, '') + ')')
@sql = 'select * from tableoracle where id in ' + @a
execute('insert into #temp2 select * from openquery(ORAC, ' + @sql+')')