我认为你误解了绑定变量如何与Oracle和cx_Oracle一起工作.

Oracle将SQL查询中的表达式(例如:myvar)识别为绑定变量占位符.当它遇到这个时,它会记下它在运行查询之前需要一个值才能运行查询,但它仍然可以继续解析没有这个值的查询.

绑定变量占位符在字符串文字中不起作用.诸如project_code =’:jobno’之类的条件只匹配其project_code是实际的六字符字符串:jobno的行,无论您是否具有名称jobno defined的bind参数.相反,你应该写project_code =:jobno.不要担心告诉Oracle关于jobno必须包含哪种类型的值;当你真正给它赋值时,它会检查你是否有正确的类型.

在某些地方,您尝试通过连接绑定变量占位符来构建LIKE子句.这种连接仍然可以完成,但必须使用||在SQL中完成而不是操作符所以,不要写”workarea%’,而是写:workarea || ‘%’,并且写了’:jobno_:qcActivity%’,写:jobno || ‘_’|| :qcActivity || ‘%’.

我对您的SQL查询进行了这些更改,创建了几个具有足够列的表以使查询有效,并运行它.我没有数据可以运行它,所以我没有得到任何结果,但数据库至少解析并成功运行查询.我还格式化了查询,使其更容易阅读:

cursor.execute("""

SELECT A.MARKERID, D.COMMENTS, A.STATUS, A.X1, A.Y1, A.X2, A.Y2, C.ERRGROUP, C.ERRDESC, c.category

FROM MDP_ERR_MASTER A,

(SELECT MARKERID, MAX(RECNO) maxRECNO

FROM MDP_ERR_MASTER

WHERE project_code = :jobno

AND errorcode like :jobno || '_' || :qcActivity || '%'

AND WORKAREA LIKE :workarea || '%'

GROUP BY MARKERID) B,

MDP_ERR_CONFIG C,

(SELECT MARKERID, COMMENTS

FROM MDP_ERR_MASTER

WHERE PROJECT_CODE = :jobno

AND RECNO = 1

AND errorcode like :jobno || '_' || :qcActivity || '%'

AND WORKAREA LIKE :workarea || '%') D

WHERE A.MARKERID = B.MARKERID

AND A.RECNO = B.maxRECNO

AND A.Markerid = D.MARKERID

AND A.PROJECT_CODE = :jobno

AND A.ERRORCODE LIKE :jobno || '_' || :qcActivity || '%'

AND A.WORKAREA LIKE :workarea || '%'

AND A.ERRORCODE = C.ERRCODE""",

{"jobno" : str(self.jobNo),

"qcActivity" : str(qcActivity),

"workarea" : str(self.wrkArea)

})

python非法变量名_python – DatabaseError:ORA-01036:非法变量名称/编号相关推荐

  1. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

  2. python字符串定义变量名_python 将字符串作为变量名

    原博文 2019-10-12 16:43 − Python中如何使用字符串当作变量名 > 1.使用字符串指代变量名.> 比如说,有两个变量 a="bbb"和bbb={& ...

  3. python字符串定义变量名_python基础-变量和字符串

    一.变量 变量的作用: 存储程序运行的结果,变量存储在内存之中,一个变量也就是在内存中开辟了一定的空间 变量可以存储什么? 变量可以存储不同的数据类型,可以为 整数.小数或者字符 变量的定义规范 a. ...

  4. python不允许使用关键字作为变量名_python函数变量_python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在python 中, ...

  5. python基础语法类型_Python基础入门语法和变量类型(一)

    1 基础语法 标识符 标识符由字母.数字和下划线(_)组成,其中不能以数字开头,并且区分大小写. 以下划线开头的标识符是有特殊意义的: 单下划线开头的如 _foo,表示不能直接访问的类属性,需要通过类 ...

  6. python可以用break作为变量名_Python初体验(一)—【配置环境变量】【变量】【input】【条件语句】【循环语句】...

    写在前面的: 作为一个控制专业的女研究生,不知道每天在研究什么,但总归逃脱不了码代码的命运.之前也学习过一些C语言.C++,基础嘛,稍稍微有一些.本不想走上码农的道路,天真烂漫的过此生(白日梦过程中. ...

  7. python自定义变量名_Python 动态变量名定义与调用

    动态变量名赋值 在使用 tkinter 时需要动态生成变量,如动态生成 var1-var10 变量. 使用 exec 动态赋值 exec 在 python3 中是内置函数,它支持 python 代码的 ...

  8. python有效变量名_Python变量命名规则

    变量的命名规则 1.要具有描述性 2.变量名只能_,数字,字母组成,不可以是空格或者特殊字符(!@#$%^&*~) 3.不能以中文为变量名 4.不能以数字开头 5.变量名区分大小写 6.保留字 ...

  9. 在python中是否可以使用if作为变量名_在Python中可以使用if 作为变量名_python使用符号 标示注释...

    在Python中可以使用if 作为变量名 答:× " src=" " style="max-width: 100%; display: inline;" ...

最新文章

  1. C语言小知识:typedef\函数模板\
  2. [算法 笔记]堆排序(续)
  3. jQuery以Post方式发送请求并获取返回的文件供下载!
  4. Spring Security 3 Ajax登录–访问受保护的资源
  5. android contacts 编辑,如何在Android中的.csv文件中逐行编写contactn...
  6. 股市三大定律是什么?
  7. 06.Python网络爬虫之requests模块(2)
  8. css----苹果移动端以及小程序滚动模块卡顿的处理
  9. 读嵌入式linux驱动程序设计从入门到精通1
  10. 微软代码审查工具_Microsoft如何进行代码审查?
  11. Abel逆变换的MATLAB实现(未完成版)
  12. 认识心理学上的自我界限(学习记录)
  13. 淘宝直通车新功能智能推广 智能推广计划设置 智能推广优化 智能推广优化原则
  14. android下载通知栏,Android开发中实现下载文件通知栏显示进度条
  15. 创业故事之 有限元软件
  16. 吴章金: 实例解析 Linux C 语言程序之变量类型
  17. Web前端学习笔记——CSS京东案例、BFC
  18. 【Python】读取数据(nc,hdf,二进制)
  19. 接口自动化测试之框架模型搭建
  20. Appium 实现iPhone真机自动化-常见问题

热门文章

  1. HDU4505 小Q系列故事——电梯里的爱情【水题】
  2. JSK-22 排序后的数组删除重复数字【入门】
  3. HDU2548 两军交锋【数学计算+水题】
  4. HDU4506 小明系列故事——师兄帮帮忙【水题】
  5. C Tricks(十七)—— 对角线元素的屏蔽、二维数组(矩阵)的遍历
  6. 迷宫问题(寻路)和状态空间搜索
  7. Java——一种彻底的面向对象语言
  8. C++基础——简单而强大的bitset
  9. 程序员薪资怎么论高级还是初级_和程序员一样高薪,却过着清闲生活,测试员什么人都可做吗?...
  10. python与office结合可以干什么-震惊!当Python遇到Excel后,将开启你的认知虫洞