存储过程 returns 标量值时查找 activity 结果的表达式

Expression for Lookup activity result when stored procedure returns scalar value

我正在使用 activity 的查找 return 是一个标量结果,我想使用该结果通过连接表达式构建动态查询。但是,我收到一条错误消息,抱怨我的 SQL 查询格式不正确。这就是我构建查询的方式:

@concat('SELECT v.CscadaEventId as EventId, 
v.EndDate as EndDateUtc 
FROM v_cscadaevents v 
INNER JOIN cscadaevents e
ON e.cscadaeventId = v.CscadaEventId 
WHERE v.CscadaEventId IN(', activity('LookupUnfinishedAlarms').output.firstRow, ') AND e.EndDate IS NOT NULL;')

我希望 return 这样的查询:

SELECT v.CscadaEventId as EventId, 
v.EndDate as EndDateUtc 
FROM v_cscadaevents v 
INNER JOIN cscadaevents e
ON e.cscadaeventId = v.CscadaEventId WHERE v.CscadaEventId IN(2329390,2340616,2342078,2345857,2361240,2362088,2362574,2377062,2378594,2379357) AND e.EndDate IS NOT NULL;

我看到一些示例,其中查找 return 多列,正确的表达式是 activity('LookupUnfinishedAlarms').output.firstRow.myColumnName 但是当查找 activity return 一个标量值时呢? ,就像我的情况一样?

到目前为止,这是完整的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\"output\":\"2329390,2340616,2342078,2345857,2361240,2362088,2362574,2377062,237859' at line 6,Source=Microsoft.DataTransfer.Runtime.GenericOdbcConnectors,''Type=System.Data.Odbc.OdbcException,Message=ERROR [42000] [Microsoft][MariaDB] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\"output\":\"2329390,2340616,2342078,2345857,2361240,2362088,2362574,2377062,237859' at line 6,Source=MariaDBODBC_sb64.dll

好的,仅供记录,我找到了解决方案。表达式必须是:

@concat('SELECT v.CscadaEventId as EventId, 
v.EndDate as EndDateUtc 
FROM v_cscadaevents v 
INNER JOIN cscadaevents e
ON e.cscadaeventId = v.CscadaEventId 
WHERE v.CscadaEventId IN(', activity('LookupUnfinishedAlarms').output.firstRow.output, ') AND e.EndDate IS NOT NULL;')

因此,默认列变为 output