根据这个答案,我尝试对雪花Python连接器使用相同的模式。这没有问题:
snowflake_cursor.execute("""
set q_id = last_query_id();""")
snowflake_cursor.execute("""
select max(scenario_id) from scenarios at(statement=>$q_id);""")
但是,我认为依赖雪花变量是短暂的,宁愿将其放入 python 变量中;至少,如果我想在执行查询并且雪花连接关闭后一天进行时间旅行,我需要某种方法将 query_id 传回执行:
snowflake_cursor.execute("""
select last_query_id();
""")
q_id = snowflake_cursor.fetchone()[0]
snowflake_cursor.execute("""
select max(scenario_id) from scenarios at(statement=>$%s);
""", q_id)
这会出现错误,
unexpected '$'
,并且我尝试在查询 id 字符串中传递的所有内容都失败了。
尝试使用
?
或 :1
进行绑定。这对我有用:
session.sql("select * from a_table at(statement=>:1);", (['01b2829a-0504-4f02-001e-2483024e7cda'])).collect()