python oracle执行错误(ORA-01036:变量名称/编号非法)



嗨,我是韩国人,所以不是以英语为母语的

不管怎样,我对有疑问

当我学习sql和python-flask连接时

这是我的代码

sql='''select count(*) from member where id = :1 '''
result=curs.execute(sql,(join_id))
cnt=result.fetchone()

该代码打印(ORA-01036:非法变量名称/编号(错误消息

好的,我解决了错误

sql='''select count(*) from member where id = :1 '''
result=curs.execute(sql,(join_id,)
cnt=result.fetchone()

像这样(join_id(add(,(

这是我的问题

为什么不同的结果(,(或不

我认为它只是一个绑定变量那么为什么需要(,(呢??

因为绑定变量总是需要在一个元组中,即使它是一个1-元组。(这代表所有遵循DB-API规范的Python SQL库(

由于在Python中,(foo)只是一个带括号的foo,因此要构建一个1-元组,需要使用尾部逗号(例如,请参阅如何创建一个只有一个元素的元组(。

最新更新