如何在针对连接到SAP-HANA的链接服务器的T-SQL查询中使用“占位符”?

问题描述 投票:0回答:1

我需要将位于Hana的表视图中的数据提取到MS-SQL表中。在HANA团队中,我被告知必须使用“占位符”来防止同时加载更改日志和活动表。

这是查询:

Declare @querytext nvarchar(1000)
Set @querytext ='
Insert into stagingtable
Select * from Openquery(LinkedServer,
''Select Field1, Field2, Field3 
From "SYSBI"."testdata.view/viewname"(''Placeholder''=(''$$Value1$$'',''00000''), ''Placeholder''=(''$$Value2$$'',''F'')); 
Where Field1 in (''ab'',''cd'',''ef''));''
'
EXEC(@querytext)

链接服务器工作(测试连接工作)。在Hana(或SAP)中运行此查询。但是,当使用Openquery在SSMS中运行查询时,我收到语法错误:

“占位符”附近的语法不正确

我试过“,”或“或”完全抛弃它的每一个变体,但似乎没有任何帮助。有没有人有想法?

tsql hana linked-server openquery
1个回答
0
投票

语法有一些拼写错误,将所有内容放入变量的字符串中仍然存在问题。然而:

Insert into stagingtable
Select * from Openquery(LinkedServer,
'Select Field1, Field2, Field3 
From "SYSBI"."testdata.view/viewname"(''Placeholder''=(''$$Value1$$'',''00000''), 
''Placeholder''=(''$$Value2$$'',''F'')) 
Where Field1 in (''ab'',''cd'',''ef''));')

按预期工作。我现在“只”需要将整个查询包装成一个字符串以将其放入变量中。

© www.soinside.com 2019 - 2024. All rights reserved.