Snowflake-如何使用名称中带有特殊字符的指定表引用内部阶段?

时间:2019-11-26 20:38:24

标签: snowflake-data-warehouse

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

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

示例:

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

尝试引用该表的内部阶段将失败(此操作已在雪花在线控制台上完成):

LIST @%"cars (sedan)"

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

错误消息(用于LIST):

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

如果表名很好(例如“ cars”),则查询将成功。

引用这些阶段的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

尝试将其用单引号引起来

list '@%"cars (sedan)"'

答案 1 :(得分:1)

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

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

答案 2 :(得分:-1)

根据文档,在表阶段从文件复制数据时,可以忽略FROM子句,因为Snowflake在表阶段自动检查文件。

由于名称引发错误,您可以省略FROM吗?