在更新 cx_oracle 中的表时出现 DatabaseError: ORA-00933: SQL 命令未正确结束
Posted
技术标签:
【中文标题】在更新 cx_oracle 中的表时出现 DatabaseError: ORA-00933: SQL 命令未正确结束【英文标题】:in updating the table in cx_oracle getting DatabaseError: ORA-00933: SQL command not properly ended 【发布时间】:2019-10-22 07:31:28 【问题描述】:同时使用python3.7更新cx_oracle中的表 错误如下。
DatabaseError: ORA-00933: SQL 命令未正确结束
x=datetime.now()
cur.execute("update HMA_UTILITIES.REFRESH_DATA set REC_UPDATE_DATE="+str(x)+"STATUS="+"FINISHED"+","+"where JOB_ID="+str(id)+";")
【问题讨论】:
我认为执行命令应该是这样的。cur.execute("update HMA_UTILITIES.REFRESH_DATA set REC_UPDATE_DATE="+str(x)+", STATUS=FINISHED where JOB_ID="+str(id)+";")
【参考方案1】:
结尾的“;”不应包含在您的陈述中。此外,您应该使用绑定变量而不是 SQL 中嵌入的文字值。所以是这样的:
x = datetime.now()
cur.execute("""
update HMA_UTILITIES.REFRESH_DATA set
REC_UPDATE_DATE = :rec_update_date,
STATUS = 'FINISHED'
where JOB_ID = :job_id""",
rec_update_date=x,
job_id=id)
【讨论】:
@hema 见cx-oracle.readthedocs.io/en/latest/user_guide/…以上是关于在更新 cx_oracle 中的表时出现 DatabaseError: ORA-00933: SQL 命令未正确结束的主要内容,如果未能解决你的问题,请参考以下文章
使用 cx_Oracle 中 csv 文件中的变量更新数据库
读取 CoreData 时出现罕见错误:CoreData 结果中的 data:<fault>
VS 2015:尝试连接到 Excel 时出现“抛出异常:System.Data.dll 中的‘System.Data.OleDb.OleDbException’”