Snowflake cloud data platform 雪花-如何为名称中带有特殊字符的指定表引用内部阶段?

Snowflake cloud data platform 雪花-如何为名称中带有特殊字符的指定表引用内部阶段?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,Snowflake允许表名包含特殊字符,只要表名用双引号括起来 但是,我在引用此类表的内部阶段时遇到了问题。当提到这些阶段时,双引号似乎不起作用 例如: CREATE TABLE "cars (sedan)" (myint int) 尝试引用此表的内部阶段将失败(这是在snowflake的联机控制台上完成的): 或 错误消息(用于列表): 如果表名很好(比如“cars”),那么查询就会成功 提及这些阶段的正确方式是什么 根据文档,当从表阶段中的文件复制数据时,可以省略from子句,因为Snow

Snowflake允许表名包含特殊字符,只要表名用双引号括起来

但是,我在引用此类表的内部阶段时遇到了问题。当提到这些阶段时,双引号似乎不起作用

例如:

CREATE TABLE "cars (sedan)" (myint int)
尝试引用此表的内部阶段将失败(这是在snowflake的联机控制台上完成的):

错误消息(用于列表):

如果表名很好(比如“cars”),那么查询就会成功


提及这些阶段的正确方式是什么

根据文档,当从表阶段中的文件复制数据时,可以省略from子句,因为Snowflake会自动检查表阶段中的文件


由于名称引发错误,是否可以省略FROM?

根据文档,当从表阶段的文件复制数据时,可以省略FROM子句,因为Snowflake会自动检查表阶段中的文件


由于名称引发了错误,您能否省略FROM?

尝试将其用单引号括起来:

list '@%"cars (sedan)"'

尝试用单引号将其括起来:

list '@%"cars (sedan)"'

或者,您也可以使用$$封装标识符和@%,如下所示:

ls $$@%"cars (sedan)"$$;

或者,您也可以使用$$封装标识符和@%,如下所示:

ls $$@%"cars (sedan)"$$;

关于列表如何使用表文本,似乎有些不对劲。我尝试了几乎所有的方法来处理文本,但得到了各种不太有用的错误。请参见此处的选项:旁注:我建议不要在表格名称中使用这种奇怪的字符。同意David的观点-不要(为了所有美好的事物,如冰淇淋、小狗、睡觉、彩虹和雪花)创建具有这种名称的表格。创建表车\轿车。。。。。不,是的,我同意,那些是可怕的表名,任何使用它们的人都是自找麻烦。不过,我想问的是一个更一般的问题,因为雪花似乎想要支持这些可怕的表名,所以在处理它们的内部阶段时,肯定有一种方法可以引用它们?关于列表如何使用表文字,似乎有些不对劲。我尝试了几乎所有的方法来处理文本,但得到了各种不太有用的错误。请参见此处的选项:旁注:我建议不要在表格名称中使用这种奇怪的字符。同意David的观点-不要(为了所有美好的事物,如冰淇淋、小狗、睡觉、彩虹和雪花)创建具有这种名称的表格。创建表车\轿车。。。。。不,是的,我同意,那些是可怕的表名,任何使用它们的人都是自找麻烦。但是,我想问的是一个更一般的问题,既然Snowflake似乎想要支持这些可怕的表名,那么在处理它们的内部阶段时,肯定有一种方法可以引用它们?如果OP试图复制到该表中,这会行得通,但请求的是LIST函数的语法。这很好,使用“复制到”时,无需担心一件事。但是,由于还需要表的stage名称,因此如何使用PUT将数据上载到表的内部stage?如果OP试图复制到该表中,这会起作用,但请求的是LIST函数的语法。这很好,使用COPY-in时不必担心。但是,既然还需要表的stage名称,那么如何使用PUT将数据上传到表的内部stage呢!如果我能选择两个答案,我也会选择这个作为一个被接受的答案。谢谢这也行!如果我能选择两个答案,我也会选择这个作为一个被接受的答案。谢谢
ls $$@%"cars (sedan)"$$;