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”),则查询将成功。
引用这些阶段的正确方法是什么?
答案 0 :(得分:2)
尝试将其用单引号引起来
list '@%"cars (sedan)"'
答案 1 :(得分:1)
或者,您也可以使用$$来包含标识符和@%,如下所示:
ls $$@%"cars (sedan)"$$;
答案 2 :(得分:-1)
根据文档,在表阶段从文件复制数据时,可以忽略FROM子句,因为Snowflake在表阶段自动检查文件。
由于名称引发错误,您可以省略FROM吗?