【问题标题】:snowflake-python error while executing snowflake SQL statement in python在 python 中执行雪花 SQL 语句时出现雪花 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 我相信我有相关的部分。你能澄清一下你需要什么吗?

标签: python sql dynamic snowflake-cloud-data-platform


【解决方案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)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多