python非法变量名_python – DatabaseError:ORA-01036:非法变量名称/编号
我认为你误解了绑定变量如何与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:非法变量名称/编号相关推荐
- python常用变量名_python基础知识整理
Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...
- python字符串定义变量名_python 将字符串作为变量名
原博文 2019-10-12 16:43 − Python中如何使用字符串当作变量名 > 1.使用字符串指代变量名.> 比如说,有两个变量 a="bbb"和bbb={& ...
- python字符串定义变量名_python基础-变量和字符串
一.变量 变量的作用: 存储程序运行的结果,变量存储在内存之中,一个变量也就是在内存中开辟了一定的空间 变量可以存储什么? 变量可以存储不同的数据类型,可以为 整数.小数或者字符 变量的定义规范 a. ...
- python不允许使用关键字作为变量名_python函数变量_python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数 - 云+社区 - 腾讯云...
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在python 中, ...
- python基础语法类型_Python基础入门语法和变量类型(一)
1 基础语法 标识符 标识符由字母.数字和下划线(_)组成,其中不能以数字开头,并且区分大小写. 以下划线开头的标识符是有特殊意义的: 单下划线开头的如 _foo,表示不能直接访问的类属性,需要通过类 ...
- python可以用break作为变量名_Python初体验(一)—【配置环境变量】【变量】【input】【条件语句】【循环语句】...
写在前面的: 作为一个控制专业的女研究生,不知道每天在研究什么,但总归逃脱不了码代码的命运.之前也学习过一些C语言.C++,基础嘛,稍稍微有一些.本不想走上码农的道路,天真烂漫的过此生(白日梦过程中. ...
- python自定义变量名_Python 动态变量名定义与调用
动态变量名赋值 在使用 tkinter 时需要动态生成变量,如动态生成 var1-var10 变量. 使用 exec 动态赋值 exec 在 python3 中是内置函数,它支持 python 代码的 ...
- python有效变量名_Python变量命名规则
变量的命名规则 1.要具有描述性 2.变量名只能_,数字,字母组成,不可以是空格或者特殊字符(!@#$%^&*~) 3.不能以中文为变量名 4.不能以数字开头 5.变量名区分大小写 6.保留字 ...
- 在python中是否可以使用if作为变量名_在Python中可以使用if 作为变量名_python使用符号 标示注释...
在Python中可以使用if 作为变量名 答:× " src=" " style="max-width: 100%; display: inline;" ...
最新文章
- C语言小知识:typedef\函数模板\
- [算法 笔记]堆排序(续)
- jQuery以Post方式发送请求并获取返回的文件供下载!
- Spring Security 3 Ajax登录–访问受保护的资源
- android contacts 编辑,如何在Android中的.csv文件中逐行编写contactn...
- 股市三大定律是什么?
- 06.Python网络爬虫之requests模块(2)
- css----苹果移动端以及小程序滚动模块卡顿的处理
- 读嵌入式linux驱动程序设计从入门到精通1
- 微软代码审查工具_Microsoft如何进行代码审查?
- Abel逆变换的MATLAB实现(未完成版)
- 认识心理学上的自我界限(学习记录)
- 淘宝直通车新功能智能推广 智能推广计划设置 智能推广优化 智能推广优化原则
- android下载通知栏,Android开发中实现下载文件通知栏显示进度条
- 创业故事之 有限元软件
- 吴章金: 实例解析 Linux C 语言程序之变量类型
- Web前端学习笔记——CSS京东案例、BFC
- 【Python】读取数据(nc,hdf,二进制)
- 接口自动化测试之框架模型搭建
- Appium 实现iPhone真机自动化-常见问题
热门文章
- HDU4505 小Q系列故事——电梯里的爱情【水题】
- JSK-22 排序后的数组删除重复数字【入门】
- HDU2548 两军交锋【数学计算+水题】
- HDU4506 小明系列故事——师兄帮帮忙【水题】
- C Tricks(十七)—— 对角线元素的屏蔽、二维数组(矩阵)的遍历
- 迷宫问题(寻路)和状态空间搜索
- Java——一种彻底的面向对象语言
- C++基础——简单而强大的bitset
- 程序员薪资怎么论高级还是初级_和程序员一样高薪,却过着清闲生活,测试员什么人都可做吗?...
- python与office结合可以干什么-震惊!当Python遇到Excel后,将开启你的认知虫洞