复制活动配置存储过程后参数值缺失,运行报错未指定projectId参数
解决存储过程参数未指定值的问题
这个报错我之前也碰到过——当你用ADF复制活动调用带参数的存储过程时,必须显式配置每个存储过程参数的值,不然就会出现"未为存储过程参数projectId指定值"的提示。从你贴的sink配置来看,确实漏掉了参数映射的关键部分。
给你两种解决方式,选你顺手的来:
方式一:通过可视化界面配置
- 打开复制活动的「Sink」标签页,往下找到「Stored procedure settings」区块
- 点击「Add」按钮,在弹出的输入框里填参数名
projectId - 在「Value」列里输入参数值:可以是固定值(比如
123),也可以用动态表达式引用管道参数(比如@pipeline().parameters.projectId) - 保存配置后重新运行活动就行
方式二:直接编辑JSON配置
直接在你的SqlSink节点里添加sqlWriterStoredProcedureParameters配置项,把projectId的参数值和类型补上。修改后的代码大概是这样:
"sink": { "type": "SqlSink", "writeBatchSize": 10000, "sqlWriterStoredProcedureName": "[dbo].[CreateAllocation]", "sqlWriterTableType": "你的表类型名称", // 保持你原来的配置就行 "sqlWriterStoredProcedureParameters": { "projectId": { "value": "这里填你的参数值,比如123或者动态表达式@pipeline().parameters.projectId", "type": "Int32" // 注意要和存储过程里projectId的SQL类型对应,比如字符串就写String } } }
小提示:type字段要和存储过程中projectId的参数类型匹配,比如参数是INT就用Int32,VARCHAR就用String,DATETIME就用DateTime,不然可能会出现类型不匹配的错误。
内容的提问来源于stack exchange,提问作者ebb
相关产品推荐
相关产品推荐

