Snowflake:通过插入值添加多个值时遇到问题



我正试图使用"插入到值中";陈述

下面是createtable语句:

create table table1(col1 float);

我正在使用以下命令插入多行:

insert into table1(col1) values (-3.4E20),(3.4E-20);

我收到了类似的错误

"无法识别数值"-34000000000000000";

另一方面,如果我尝试分别插入这两行,则会成功。

插入命令:

insert into table1(col1) values (-3.4E20);
insert into table1(col1) values (3.4E-20);

你能帮我确定多行插入命令的问题吗?

任何建议、帮助都会很有帮助。

扩展Marcel的答案,此查询会产生相同的错误:

select $1
from values (-3.4E20), (3.4E-20);

这个修复了它:

select $1
from values (-3.4E20::float), (3.4E-20);

如查询中所示,解决方案是将信息添加到文字数字中,这样Snowflake就不会对可能的类型感到困惑。

我不确定这是否与您的问题有关,但可能有助于找到答案。

根据文档,您必须确保插入值的数据类型在各行之间是一致的,因为服务器以第一行的数据类型为指导。所以…如果第一个和第二个values子句中的数据类型不同(可能是由于上面某个值的自动转换(,那么组合查询将失败。即使它们与表的列的数据类型匹配!

链接:https://docs.snowflake.com/en/sql-reference/sql/insert.html#multi-使用显式指定值插入行

最新更新