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

jvidinwx  于 2022-10-04  发布在  Python
关注(0)|答案(1)|浏览(346)

你好,我是韩国人,所以我的母语不是英语

不管怎样,我有个问题

当我学习SQL和PYTHON FASK连接时

这是我的代码

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),)

这就是我的问题

为什么结果不同(,)

我认为它只有一个绑定变量,所以为什么需要(,)??

yizd12fk

yizd12fk1#

因为绑定变量始终需要在元组中,即使它是1元组。(这代表所有符合DB-API规范的Python SQL库。)

由于在Python(foo)只是一个带括号的foo,要构建1元组,您需要尾随逗号(例如,请参见How to create a tuple with only one element)。

相关问题