在 python 中执行雪花 SQL 语句时出现雪花 python 错误
Posted
技术标签:
【中文标题】在 python 中执行雪花 SQL 语句时出现雪花 python 错误【英文标题】:snowflake-python error while executing snowflake SQL statement in python 【发布时间】:2021-10-05 11:11:57 【问题描述】:我得到这个错误,为什么我在执行程序时尝试执行刚刚构建的动态 sql
“SnowflakeCursor”对象没有属性“strip”
这是动态 SQL
Alter_add_dyn_sql="SELECT 'ALTER TABLE "+schema+"."+object_name+" ADD(COL_Y VARCHAR2(100));' FROM DUAL;"
这是执行我打开的光标的调用
这是动态 SQL
cs_dev_cdw=dev_cdw_conn.cursor()
print(Alter_add_dyn_sql)
Alt_add_sql=cs_dev_cdw.execute(Alter_add_dyn_sql)
print(Alt_add_sql)
output: Alter_add_dyn_sql="SELECT 'ALTER TABLE "+schema+"."+object_name+" ADD(COL_Y
VARCHAR2(100));' FROM DUAL;"
Alt_add_sql=cs_dev_cdw.execute(Alter_add_dyn_sql)
execute error:
'SnowflakeCursor' object has no attribute 'strip'
dev_cdw_conn 定义
dev_cdw_conn = sf.connect (dev_cdw_database=config.dev_cdw_database,dev_warehouse=config.dev_warehouse,user=config.username,password=config.password,account=config.account,dev_role=config.dev_cdw_role)
【问题讨论】:
你能发布整个堆栈跟踪吗?我认为缺少一些重要的代码 嗨 filipe 我相信我有相关的部分。你能澄清一下你需要什么吗? 【参考方案1】:我无法重现您的错误,但我确实在您的代码中看到了一个问题:您不必通过从 dual 中选择来构造 SQL 语句。您可以将 SQL 语句作为字符串传入:
Alter_add_dyn_sql='ALTER TABLE '+schema+'.'+object_name+' ADD(COL_Y VARCHAR2(100));'
【讨论】:
谢谢玛雅。我按照你的建议试过了。这里是 Alter_add_dyn_sql='ALTER TABLE '+schema+'.'+object_name+' ADD(COL_Y VARCHAR2(100));' [8:22 AM] Srinivasa Raghavan Alter_add_dyn_sql_str=Alter_add_dyn_sql.replace('\n','') [8:22 AM] Srinivasa Raghavan cs_dev_cdw = dev_cdw_conn.cursor() print(Alter_add_dyn_sql. replace('\n','')) cs_dev_cdw.execute(cs_dev_cdw,Alter_add_dyn_sql_str) 生成的 SQL 语句 -> ALTER TABLE DW.BATCH_CONTROL ADD(COL_Y VARCHAR2(100));仍然出错 -> 'SnowflakeCursor' 对象没有属性 'strip' 嗨 Maja - 我稍微改变了游标调用语句和执行语句。我现在很好。有效。感谢您对简化 SQL 的意见。这是我修改后的适用于光标的代码 dev_cdw_execute_query(dev_cdw_conn,Alter_add_dyn_sql_str)以上是关于在 python 中执行雪花 SQL 语句时出现雪花 python 错误的主要内容,如果未能解决你的问题,请参考以下文章
Python Glue 作业 - 雪花存储过程未返回确切的错误消息