在Azure Data Factory中使用存储过程派生列值出现concat语法错误求助
错误原因
- 语法错误直接来自
INSERT语句的VALUES子句规则:所有要插入的值表达式必须用圆括号包裹,你原有代码未给concat函数调用加外层括号,触发语法报错。 - 要实现
col_1_value, col_2_value的格式,需要在拼接时额外添加两个参数中间的逗号和空格字符。
修正后的存储过程代码
CREATE PROC deriveColumn_SP @col_1 VARCHAR(20), @col_2 VARCHAR(20) AS BEGIN INSERT INTO tableName(col_5) VALUES (CONCAT(@col_1, ', ', @col_2)) END
兼容低版本SQL Server的备选写法
如果你的数据库版本是SQL Server 2008及更早,不支持CONCAT函数,可直接用+运算符拼接(你所有字段都是varchar类型,无类型转换风险):
CREATE PROC deriveColumn_SP @col_1 VARCHAR(20), @col_2 VARCHAR(20) AS BEGIN INSERT INTO tableName(col_5) VALUES (@col_1 + ', ' + @col_2) END
注意:你当前的存储过程逻辑是插入一条仅col_5有值的新行,如果你的实际需求是更新表中已有行的col_5字段,需要将
INSERT语句替换为带筛选条件的UPDATE语句,避免生成无效的空数据行。
内容的提问来源于stack exchange,提问作者D.R.
相关产品推荐
相关产品推荐

