mysql报错01427_ORA-01427问题的分析和解决
前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因。java.sql.SQLException: ORA-01427: singl
前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因。
java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
我一看到这个错误的第一反应就是应该是sql语句的问题,然后开发同事反馈这个程序已经用了蛮长时间了,现在突然报出了错误。
简单沟通之后,,我得到了对应的sql语句。
SELECT ID, PROJECTNAME, GRAPH, TYPE, PERSON, RECORDTIME, PROJECTURL , ICON, GO, COLOR, LOCATION, MANAGER ,
(SELECT NAME FROM app_iwork.WS_PRIVILEGE_NODE WHERE MENUID = pro.projectkey ) KEYNAME
FROM app_iwork.WS_TEST_PROJECT pro
WHERE TYPE = '495' ORDER BY LOCATION ASC ,ID DESC
从sql语句能够猜出来错误应该是从子查询里返回的。
(SELECT NAME FROM app_iwork.WS_PRIVILEGE_NODE WHERE MENUID = pro.projectkey )
我们来看看这个语句,按照ORA-01427的错误,应该是这个子查询返回了多行值。
简单来验证一下,首先根据type='495'能够得到下面的查询结果
select projectkey from app_iwork.WS_TEST_PROJECT pro WHERE TYPE = '495'
PROJECTKEY
--------------------------------------------------
1557739
1516023
1577799
374871
1584374
取出任意一条,然后按照两个表的关联字段值查询,可以看到输出了3行数据。
SQL> SELECT NAME FROM app_iwork.WS_PRIVILEGE_NODE WHERE MENUID = 1557739;
NAME
--------------------------------------------------------------------------------
分析系统
分析系统
分析系统
所以这种情况的解决方案有几种。
SELECT ID, PROJECTNAME, GRAPH, TYPE, PERSON, RECORDTIME, PROJECTURL , ICON, GO, COLOR, LOCATION, MANAGER , n.name
FROM app_iwork.WS_TEST_PROJECT pro ,app_iwork.WS_PRIVILEGE_NODE n
WHERE MENUID = pro.projectkey and TYPE = '495' ORDER BY LOCATION ASC ,ID DESC
这种方式可以输出结果而不会报错,尽管存在冗余数据,但是也不推荐。
另外一种思路就是在子查询中进行重复值的过滤,使用group by来完成。
SELECT ID, PROJECTNAME, GRAPH, TYPE, PERSON, RECORDTIME, PROJECTURL , ICON, GO, COLOR, LOCATION, MANAGER ,
(SELECT NAME FROM app_iwork.WS_PRIVILEGE_NODE WHERE MENUID = pro.projectkey group by name ) KEYNAME
FROM app_iwork.WS_TEST_PROJECT pro
WHERE TYPE = '495' ORDER BY LOCATION ASC ,ID DESC
还有一种思路就是和开发确认,删除冗余的数据,这种方案不用修改代码,还是相对来说可以实现的一种方式。
和开发同事简单沟通,这个表中还是存在部分的脏数据,修改之后,问题就解决了。
如果对这个问题进一步改进,可以在确认这个表结构的基础上,看看能够添加相应的约束,这样也能够保证表中的数据不会存在冗余,避免后续出现此类的问题。
本文永久更新链接地址:
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
mysql报错01427_ORA-01427问题的分析和解决相关推荐
- mysql 报错 get error 28 from storage engine 解决方法
mysql 报错 get error 28 from storage engine 解决方法 参考文章: (1)mysql 报错 get error 28 from storage engine 解决 ...
- Hasor【付诸实践 01】低代码框架 DataQL 聚合查询引擎 SQL执行器报错 Query dialect missing 原因分析及解决(针对GreenPlum数据库)
1.报错说明 在本地搭建了两个平台,hasor核心依赖的版本是一致的, 连接的都是GreenPlum数据库 ,且执行的是相同的DataQL语句: <!--hasor核心依赖[是老平台接入,由于兼 ...
- 已解决mysql报错ERROR 1049 (42000): Unknown database ‘数据库‘
已解决mysql报错ERROR 1049 (42000): Unknown database '数据库' 文章目录 报错问题 解决方法 福利 报错问题 粉丝群里面的一个小伙伴敲代码时发生了报错(当时他 ...
- php mysql 微信昵称_php 解决微信昵称emoji表情插入MySQL报错
在PHP接受到微信用户昵称入库的时候报错 原因:utf-8 最大3个字节,而emoji占4个字节 解决办法: 1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5. ...
- mysql报错 DuplicateKeyException分析与解决
在做数据库同步的时候,发现一个错误,mysql报错如下: org.springframework.dao.DuplicateKeyException: ### Error updating datab ...
- mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column
mysql报错: [Err] 1055 - Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggrega ...
- mysql中文注入_SQL注入之Mysql报错注入
--志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...
- SQL注入之Mysql报错注入
--志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...
- 【MySQL】修改配置后,重启MySQL报错[ERROR] The server quit without updating PID file
问题: 在没有修改配置时,MySQL启动正常: 错1:修改配置后MySQL启动不了,报错: [root@localhost mysql]# service mysql restart Starting ...
- Mysql报错Fatal error:Can't open and lock privilege tables
Mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 安装mysql后 ...
最新文章
- 数据库:数据库死机和掉电时如何让恢复数据
- 项目经理人必须要遵循的14个成功原则
- java压缩文件出现中文乱码问题
- oracle中的常用函数
- Hibernate锁定模式– PESSIMISTIC_READ和PESSIMISTIC_WRITE如何工作
- [Axios] 基于Promise封装属于自己的Ajax库
- hive2 mysql_架构hive2mysql流程
- webplayer 设置加载图标和屏蔽右键
- ios build lame
- Exchange 2007 邮箱设置
- 获取浏览器唯一标识_探讨浏览器指纹 fingerprint
- 全网最详细的Yolov3训练Caltech Pedestrain数据集并绘制fppi miss rate图
- 湖南省大学生程序设计竞赛系统设计
- 第十三周 项目2第11章习题9
- 托福艺术导向(纪录片《文明》单词总结)PART1
- vue项目如何部署?布署服务器后刷新404如何解决?
- PostgreSQL在Linux和Windows安装和入门基础教程
- An Introduction to Kernel Synchronization [LKD 09]
- 项目总结之论员工的自我修养
- GBT22239-2019信息安全技术网络安全等级保护基本要求第三级安全要求管理部分表格版
热门文章
- 首提“智能X效应”,英特尔携手产业加速智能变革
- Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换
- 一招生成定制版二次元人脸头像,还能“模仿”你的表情!
- 亲测!这款耳机堪比 AirPods,还不到 200 块!
- 腾讯、阿里能像 Facebook 一样发币吗?
- 老码农:我为什么建议程序员尽早进入大厂?
- 无法拯救的 Wear OS!
- 未来 10 年的科技圈,将会因这 10 项技术而颠覆!
- Google 要用 Flutter 一统移动、桌面开发江湖?
- 身价百亿的中本聪是如何打造出“创世区块”的?