前几天开发的同事反馈一个问题,说前台系统报出了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问题的分析和解决相关推荐

  1. mysql 报错 get error 28 from storage engine 解决方法

    mysql 报错 get error 28 from storage engine 解决方法 参考文章: (1)mysql 报错 get error 28 from storage engine 解决 ...

  2. Hasor【付诸实践 01】低代码框架 DataQL 聚合查询引擎 SQL执行器报错 Query dialect missing 原因分析及解决(针对GreenPlum数据库)

    1.报错说明 在本地搭建了两个平台,hasor核心依赖的版本是一致的, 连接的都是GreenPlum数据库 ,且执行的是相同的DataQL语句: <!--hasor核心依赖[是老平台接入,由于兼 ...

  3. 已解决mysql报错ERROR 1049 (42000): Unknown database ‘数据库‘

    已解决mysql报错ERROR 1049 (42000): Unknown database '数据库' 文章目录 报错问题 解决方法 福利 报错问题 粉丝群里面的一个小伙伴敲代码时发生了报错(当时他 ...

  4. php mysql 微信昵称_php 解决微信昵称emoji表情插入MySQL报错

    在PHP接受到微信用户昵称入库的时候报错 原因:utf-8 最大3个字节,而emoji占4个字节 解决办法: 1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5. ...

  5. mysql报错 DuplicateKeyException分析与解决

    在做数据库同步的时候,发现一个错误,mysql报错如下: org.springframework.dao.DuplicateKeyException: ### Error updating datab ...

  6. 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 ...

  7. mysql中文注入_SQL注入之Mysql报错注入

    --志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...

  8. SQL注入之Mysql报错注入

    --志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...

  9. 【MySQL】修改配置后,重启MySQL报错[ERROR] The server quit without updating PID file

    问题: 在没有修改配置时,MySQL启动正常: 错1:修改配置后MySQL启动不了,报错: [root@localhost mysql]# service mysql restart Starting ...

  10. 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后 ...

最新文章

  1. 数据库:数据库死机和掉电时如何让恢复数据
  2. 项目经理人必须要遵循的14个成功原则
  3. java压缩文件出现中文乱码问题
  4. oracle中的常用函数
  5. Hibernate锁定模式– PESSIMISTIC_READ和PESSIMISTIC_WRITE如何工作
  6. [Axios] 基于Promise封装属于自己的Ajax库
  7. hive2 mysql_架构hive2mysql流程
  8. webplayer 设置加载图标和屏蔽右键
  9. ios build lame
  10. Exchange 2007 邮箱设置
  11. 获取浏览器唯一标识_探讨浏览器指纹 fingerprint
  12. 全网最详细的Yolov3训练Caltech Pedestrain数据集并绘制fppi miss rate图
  13. 湖南省大学生程序设计竞赛系统设计
  14. 第十三周 项目2第11章习题9
  15. 托福艺术导向(纪录片《文明》单词总结)PART1
  16. vue项目如何部署?布署服务器后刷新404如何解决?
  17. PostgreSQL在Linux和Windows安装和入门基础教程
  18. An Introduction to Kernel Synchronization [LKD 09]
  19. 项目总结之论员工的自我修养
  20. GBT22239-2019信息安全技术网络安全等级保护基本要求第三级安全要求管理部分表格版

热门文章

  1. 首提“智能X效应”,英特尔携手产业加速智能变革
  2. Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换
  3. 一招生成定制版二次元人脸头像,还能“模仿”你的表情!
  4. 亲测!这款耳机堪比 AirPods,还不到 200 块!
  5. 腾讯、阿里能像 Facebook 一样发币吗?
  6. 老码农:我为什么建议程序员尽早进入大厂?
  7. 无法拯救的 Wear OS!
  8. 未来 10 年的科技圈,将会因这 10 项技术而颠覆!
  9. Google 要用 Flutter 一统移动、桌面开发江湖?
  10. 身价百亿的中本聪是如何打造出“创世区块”的?