ORA-01036: 非法变量 name/number 用 cx_orcale 更新 executemany
ORA-01036: illegal variable name/number Update executemany with cx_orcale
我需要在 oracle sql 中更新大约 50 万行,但是当我尝试只更新 2 行时出现以下错误。我不明白我哪里出错了。
错误:
cursor.executemany(updatequery,insert_chunk)
cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number
我的代码:
insert_batch_size=100000
bind_update=[['BAIPS9419N', 'AADHAARSEEDINGISSUCCESSFUL'], ['ADOPL3293P', 'AADHAARSEEDINGISSUCCESSFUL']]
try:
bind_update_chunks = [bind_update[x:x+insert_batch_size] for x in range(0, len(bind_update), insert_batch_size)]
for insert_chunk in bind_update_chunks:
_updatequery="update UCIDBA.client_code_dtls set ccd_aadhaar_seeding_status = 'N',CCD_LST_MOD_BY='SYSTEM',CCD_LST_MOD_DT=SYSDATE where CCD_PAN_NO= :1"
logging.info("UpdateDBWith_Y:->Update Query : |" +updatequery)
cursor.executemany(updatequery,insert_chunk)
connection.commit()
return True
except Exception as e :
logging.exception("UpdateDBWith_Y:->: |")
return False
在您的示例中,您有 一个 绑定变量 (:1
),但每行中有 两个 条数据.调整 SQL 以包含第二个绑定变量 (:2
) 或调整您的数据以仅提供一条数据。
我同意错误消息有点无用。正在努力在未来的版本中解决这个问题!
我需要在 oracle sql 中更新大约 50 万行,但是当我尝试只更新 2 行时出现以下错误。我不明白我哪里出错了。
错误:
cursor.executemany(updatequery,insert_chunk)
cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number
我的代码:
insert_batch_size=100000
bind_update=[['BAIPS9419N', 'AADHAARSEEDINGISSUCCESSFUL'], ['ADOPL3293P', 'AADHAARSEEDINGISSUCCESSFUL']]
try:
bind_update_chunks = [bind_update[x:x+insert_batch_size] for x in range(0, len(bind_update), insert_batch_size)]
for insert_chunk in bind_update_chunks:
_updatequery="update UCIDBA.client_code_dtls set ccd_aadhaar_seeding_status = 'N',CCD_LST_MOD_BY='SYSTEM',CCD_LST_MOD_DT=SYSDATE where CCD_PAN_NO= :1"
logging.info("UpdateDBWith_Y:->Update Query : |" +updatequery)
cursor.executemany(updatequery,insert_chunk)
connection.commit()
return True
except Exception as e :
logging.exception("UpdateDBWith_Y:->: |")
return False
在您的示例中,您有 一个 绑定变量 (:1
),但每行中有 两个 条数据.调整 SQL 以包含第二个绑定变量 (:2
) 或调整您的数据以仅提供一条数据。
我同意错误消息有点无用。正在努力在未来的版本中解决这个问题!