Snowflake 允许表名包含特殊字符,只要表名用双引号括起来即可。
但是,我在引用此类表的内部阶段时遇到问题。在引用这些阶段时,双引号似乎不起作用。
例子:
CREATE TABLE "cars (sedan)" (myint int)
尝试引用此表的内部阶段将失败(这是在 snowflake 的在线控制台上完成的):
LIST @%"cars (sedan)"
或
PUT file:///tmp/myfile.csv @%"cars (sedan)"
错误消息(对于 LIST):
SQL compilation error: syntax error line 1 at position 13 unexpected '('.
如果表名是很好的东西(如“汽车”),那么查询将成功。
引用这些阶段的正确方法是什么?
尝试将其包装在单引号中:
list '@%"cars (sedan)"'

或者,您也可以使用 $$来封闭标识符和 @ %,如下所示:
ls $$@%"cars (sedan)"$$;
根据文档,从表阶段的文件复制数据时,可以省略 FROM 子句,因为 Snowflake 会自动检查表阶段的文件。
你能省略 FROM,因为名称抛出错误吗?
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(24条)