【问题标题】:Azure Logic App - Result Set from Stored procedureAzure 逻辑应用 - 来自存储过程的结果集
【发布时间】:2022-06-10 23:52:46
【问题描述】:

创建逻辑应用以从 SQL Server 中检索 JSON 格式的数据。

从通过 HTTP 请求触发的逻辑应用调用 SQL 存储过程。

并使用下面的选择 Query - FOR JSON 将输出创建为 JSON 并在逻辑应用的响应中使用 ResultSet。

SELECT ID, NAME FROM #TABLENAME FOR JSON PATH, ROOT('Data')

但是我得到了 ResultSet 以及由 SProc select 语句创建的表和列名。 与 Stored Proc 的输出一起包含在 SProc 的 ResultSet 中。

有谁知道从 Stored Proc 输出中的结果集中删除此突出显示的输出的方法?

预期输出 -

{"脉冲数据": [{"A":"cc", "B":"ZZ"},{"A":"dd", "B":"YY"}, {"A" :"ee", "B":"XX"}]}

【问题讨论】:

  • 您是否尝试过删除“For Json”并返回数据?它将是逻辑应用程序中的 json。类似 "ResultSets": { "Table1": [ { "invoiceGUID": "f6d62a85-0d70-6739-1564-314b55fd49a5", "invoiceNumber": "40001299" ......... 并返回 ResultsSets.[表1]
  • 好的,谢谢。目前我正在使用相同的,已删除的“For Json”。只使用一个选择语句。得到相同的结果 --> {"Table1": [{"A":"cc", "B":"ZZ"},{"A":"dd", "B":"YY"}, { "A":"ee", "B":"XX"}]} 只剩下“脉冲数据”部分。 Table1 即将到来。
  • 您可以在 json 字符串中将 Table1 替换为 PulseData。或者使用类似 {"PulseData": } 的组合来动态构建所需的结果。

标签: sql-server azure azure-sql-database azure-logic-apps for-json


【解决方案1】:

我已经在本地环境中复制了同样的内容并成功了。

通过在Azure Logic Apps 中执行以下方法,并达到了所需的结果:

以下是例外结果:

【讨论】:

  • 谢谢,拉吉。我正在创建未存储在表中的动态输出,使用临时表将其存储在 Stored Proc 中,并从中返回结果集。仅当可以通过将其存储在表中然后通过执行 SQL 检索来实现这一点时,我才剩下 JSON Root 问题,这将进行测试,但在这里不会是开销吗?
【解决方案2】:

我昨天遇到了同样的问题。我能够通过将查询包装到存储过程中的输出变量中来解决此问题,然后使用逻辑应用程序中的输出参数。

过程 [dbo].[Something_to_JSON] @JSON NVARCHAR(MAX) 输出

SELECT @JSON = ( SELECT DISTINCT 某事,某事

Logic App HTTP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 2023-03-05
    • 2023-03-29
    • 2016-11-18
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 2012-01-29
    相关资源
    最近更新 更多