我试着从python上的其他脚本调用一个函数,该函数必须返回一个查询,而不是在数据库中执行,但它给了我一个错误,因为它看起来像python可以使用“;",我试图消除查询中的每一个”;”,在执行查询后,再次出现错误“oracledb.DatabaseError:ORA-00900:invalid SQL statement”
#This is the function
def queryUpdate0():
return f"""declare
cursor conver_0 is
SELECT a.rowid row_id,
a.PERIODO,a.MSISDN,a.PROCESO,a.PROCESO_2
FROM DGB_Fct_Unfcd_Ocp_Hst a
Begin
For c in conver_0 Loop
Update DGB_Fct_Unfcd_Ocp_Hst
set PROCESO = null,
PROCESO_2 = null
Where rowid = c.row_id
and PERIODO = '{currentDate}'
End Loop
Commit
End"""
#This is how I execute the query in the other script
query6 = queries.queryUpdate0()
cursor.execute(query6)
字符串
(The游标已定义)
我已经尝试了其他查询不同的语句,他们没有错误。
1条答案
按热度按时间yx2lnoni1#
UPDATE
查询中完成所有这些操作。就像这样:
字符串
如果
currentDate
总是今天的日期,那么就使用SYSDATE
:型
如果你想修复你的代码,然后把
;
放回去(你只想删除语句终止符,对于PL/SQL来说是尾部的/
,而不是;
,这是SQL语句的终止符):型
但这将非常低效。