Snowflake含空格列名的MERGE操作报错求助
问题解决:Snowflake MERGE语句插入带空格列名表的错误修正
错误原因
你的MERGE语句中,INSERT的VALUES子句里写的是字符串字面量'string 1'和'number 1',其中'number 1'是字符串类型,而目标表的"number 1"列是NUMBER类型,类型不匹配导致报错。另外你的逻辑是要将源子查询中的数据插入目标表,所以应该引用源表T的列,而非硬编码字符串。
修正后的MERGE语句
merge into mytable using ( select * from ( values('a', 4),('b', 5) ) ) as T ("string 1", "number 1") on FALSE when not matched then insert ("string 1", "number 1") values (T."string 1", T."number 1");
关键说明
- 引用带空格的列名必须用双引号包裹,单引号或
$$适用于字符串字面量或标识符转义,但列名引用只能用双引号。 INSERT的VALUES部分需要对应源表T的列,这样才能将子查询中的('a',4)、('b',5)正确插入目标表的对应列。
内容的提问来源于stack exchange,提问作者rickspada
相关产品推荐
相关产品推荐

