首页 > 解决方案 > 从 ADF 到 SQL 存储过程的 Json 输入参数

问题描述

在 ADF 中,我试图将 JSON 变量传递给 azure sql 存储过程。json值如下。

输入

{
    "storedProcedureName": "[dbo].[SP_INSERT_BLOBFILELIST]",
    "storedProcedureParameters": {
        "BlobFileName": {
            "value": [
                {
                    "itemName": "fileone_20211103055924081.zip",
                    "lastModified": "2021-11-03T09:59:30Z",
                    "size": 77894,
                    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (East US 2)",
                    "executionDuration": 0,
                    "durationInQueue": {
                        "integrationRuntimeQueue": 1
                    },
                    "billingReference": {
                        "activityType": "PipelineActivity",
                        "billableDuration": [
                            {
                                "meterType": "AzureIR",
                                "duration": 0.016666666666666666,
                                "unit": "Hours"
                            }
                        ]
                    }
                },
                {
                    "itemName": "filetwo_20211104050042529.zip",
                    "lastModified": "2021-11-04T09:01:15Z",
                    "size": 77893,

我的存储过程如下。

alter  procedure dbo.SP_INSERT_BLOBFILELIST (@BlobFileName nVarchar(max))
as
begin
INsert into dbo.BlobFileList
select getdate(),* From openjson(@BlobFileName,N'$.value')
with (itemName varchar(500) N'$.itemName', 
lastModified datetime N'$.lastModified')
end

ADF 显示错误“对 sql server 执行失败。Sql 错误号:13609。错误消息:JSON 文本格式不正确。在位置 0 发现意外字符 'S'。”

任何人都可以请帮忙。

标签: jsonparametersazure-data-factory

解决方案


推荐阅读