Snowpark SQL编译错误:含短横线的角色名导致连接异常
Snowpark连接时角色名含短横线导致SQL编译错误的解决方案
角色名称里的短横线会被Snowflake的SQL解析器当成算术运算符,直接写进USE ROLE语句里就会触发编译错误。解决办法很简单:给带特殊字符的标识符套上双引号。
修改后的代码如下:
dbname = "MY_DB" schemaname = "MY_SCHEMA" warehouse = "MY_WH" role_name = "MY-SNOWFLAKE-ROLE" # 用双引号包裹含短横线的角色名 read_session.sql(f'USE ROLE "{role_name}"').collect() read_session.sql(f"USE WAREHOUSE {warehouse}").collect() read_session.sql(f"USE DATABASE {dbname}").collect() read_session.sql(f"USE SCHEMA {dbname}.{schemaname}").collect()
注意:如果你的仓库、数据库或模式名也包含短横线、空格这类特殊字符,同样需要用双引号包裹。另外用f-string时注意引号嵌套,这里用单引号包整个SQL语句,双引号包标识符,不用额外转义,更简洁。
内容的提问来源于stack exchange,提问作者drymolasses
相关产品推荐
相关产品推荐

