Snowflake - 如何引用名称中包含特殊字符的指定 table 的内部阶段?

Snowflake - how to refer to internal stage for specified table with special characters in its name?

Snowflake 允许 table 名称包含特殊字符,只要 table 名称用双引号括起来即可。

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

示例:

CREATE TABLE "cars (sedan)" (myint int)

尝试为此 table 引用内部阶段将失败(这是在雪花的在线控制台上完成的):

LIST @%"cars (sedan)"

PUT file:///tmp/myfile.csv @%"cars (sedan)"

错误消息(对于 LIST):

SQL compilation error: syntax error line 1 at position 13 unexpected '('.

如果 table 名称不错(如 "cars"),则查询将成功。

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

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

你能省略 FROM 吗,因为名称会引发错误?

尝试用单引号括起来:

list '@%"cars (sedan)"'

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

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