【问题标题】:Oracle error ORA-01036: illegal variable name/numberOracle 错误 ORA-01036: 非法变量名/编号
【发布时间】:2018-10-16 05:37:41
【问题描述】:

为什么我在 Oracle DB 中收到此错误?

cx_Oracle.DatabaseError: ORA-01036: 非法变量名/编号

cur.execute("select jobid, jobname, technology, skillset, salary, minimumexp from job where technology=:technology or int(salary)>=:int(salary) or int(minimumexp)<=int(minimumexp)",{"technology":technology,"int(salary)":int(salary),"int(minimumexp)":int(minimumexp)})

【问题讨论】:

    标签: python oracle integration


    【解决方案1】:

    我认为INT 函数在这种情况下无效;至少,它在 Oracle 中什么都不做。除非我错了,否则它将 float 数字转换为 integers。如果是这样,请尝试使用 TRUNC 函数,因为 Python 的 INT 会截断小数。

    此外,您似乎在错误的位置使用了冒号(代表参数,对吧?)(应该在参数名称的前面,而不是INT(或TRUNC) 函数)。

    例如:

    No : or int(salary)   >= :int(salary)
    Yes: or trunc(salary) >= trunc(:salary)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2018-05-21
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      相关资源
      最近更新 更多