Snowflake cloud data platform 雪花:通过插入值添加多个值时面临问题

Snowflake cloud data platform 雪花:通过插入值添加多个值时面临问题,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我试图使用“insert into values”语句在snowflake中的表中添加多行 下面是CREATETABLE语句: create table table1(col1 float); 我使用以下命令插入多行: insert into table1(col1) values (-3.4E20),(3.4E-20); 我犯了这样的错误 “无法识别数值'-340000000000000'” 另一方面,如果我尝试分别插入这两行,则会获得成功 插入命令: insert into table1

我试图使用“insert into values”语句在snowflake中的表中添加多行

下面是CREATETABLE语句:

create table table1(col1 float);
我使用以下命令插入多行:

insert into table1(col1) values (-3.4E20),(3.4E-20);
我犯了这样的错误

“无法识别数值'-340000000000000'”

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

插入命令:

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

insert into table1(col1) values (3.4E-20);
您能帮助我识别多行插入命令的问题吗


任何建议、帮助都将非常有用。

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

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


链接:

根据Marcel的答案展开,此查询产生相同的错误:

选择$1
从数值(-3.4E20),(3.4E-20);
这一个解决了这个问题:

选择$1
根据值(-3.4E20::float),(3.4E-20);

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

感谢Marcel的回复。我已经看过文件了。但它并没有帮助我澄清我的怀疑,因为你们看到我在第一个值本身就得到了错误。这两个值的类型相同,并且根据数据类型也是有效值。右Felipe。但我在寻找更通用的解决方案。因为如果我确信我的数据将始终是float或任何其他数据类型,我就可以这样做。但是在生产工作负载中,如果我必须对所有数据类型和不同的数据重用代码,那么它必须工作得很好,而且不必为第一条记录推断数据类型。我想这是目前雪花的局限性。我假设在生产中,您不需要运行
insert-into-table1(col1)值(-3.4E20)之类的语句--如果您这样做了,您能提供更多关于特定用例的信息,以便我们在生产中强化它吗?没错,Felipe,那是当时的一种用例,我们现在又回到了更健壮的替代方案。谢谢你的回复。