org.springframework.jdbc.UncategorizedSQLException: 
### Error updating database.  Cause: java.sql.SQLException: ORA-30926: 无法在源表中获得一组稳定的行

### The error may involve package.class.method-Inline
### The error occurred while setting parameters
### SQL: MERGE INTO ...
### Cause: java.sql.SQLException: ORA-30926: 无法在源表中获得一组稳定的行

; uncategorized SQLException for SQL []; SQL state [99999]; error code [30926]; ORA-30926: 无法在源表中获得一组稳定的行
; nested exception is java.sql.SQLException: ORA-30926: 无法在源表中获得一组稳定的行

问题复现:假设ID为UUID且是主键

MERGE INTO tableName t1 USING (SELECT? AS ID, ? AS XUEHAO, ? AS NAME FROMdual UNIONSELECT? AS ID, ? AS XUEHAO, ? AS NAME FROMdual UNIONSELECT? AS ID, ? AS NAME FROMdual ) t2 ON ( t1.XUEHAO = t2.XUEHAO ) WHEN MATCHED THEN
UPDATE SET t1.NAME = t2.NAME ,t1.XUEHAO = t2.XUEHAOWHEN NOT MATCHED THENINSERT ( ID, XUEHAO, NAME )
VALUES( t2.ID, t2.XUEHAO, t2.NAME )

分情况说明:

1、如果第3行和第7行的数据完全相同,只会存入一条数据

2、如果第3行和第7行的数据XUEHOA相同,会存入两条数据,如果你想让学号唯一,需加唯一索引

3、如果第3行和第7行的数据XUEHOA相同,会存入两条数据,当再次执行这条sql的时候,就会报上面的错误:> ORA-30926: unable to get a stable set of rows in the source tables

4、第11行会报错:ORA-01789: 查询块具有不正确的结果列数

5、第18行会报错:ORA-38104: 无法更新 ON 子句中引用的列: "T1"."XUEHAO"

ORA-30926: 无法在源表中获得一组稳定的行相关推荐

  1. ORA-30926 无法在源表中获得一组稳定的行 Merge into 实战

    ORA-30926 无法在源表中获得一组稳定的行 && Merge into 实战 merge into 时需要一个唯一的key值来决定merge into的操作是insert int ...

  2. 无法在源表中获得一组稳定的行_行输出变压器的结构、符号及电路分析

    行输出变压器又称逆程变压器.回扫变压器,俗称行输出,它是电视机.显示器中的一个重要变压器. 1.行输出变压器结构 行输出变压器的全部绕组和高压整流管均密封在其中,底部引出各个绕组的引脚,高压输出采用高 ...

  3. Merge碰到ORA-30926 无法在源表中获得一组稳定的行

    原因是using的结果里出现关联字段重复的记录,比如 MERGE INTO A USING B ON (B.ID=A.ID) .... 在B表有相同ID的多条记录

  4. SQL-61 对于employees表中,给出奇数行的first_name

    题目描述 对于employees表中,给出奇数行的first_name CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_dat ...

  5. 对于employees表中,给出奇数行的first_name

    对于employees表中,给出奇数行的first_name CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` da ...

  6. MySQL期末考试题目 题目1:查询employee数据表中的第5—8行的数据;题目2:查询每个部门的员工人数以及平均工资;题目3:查询‘孙威’的基本信息,包括员工编号、所在部门名称、岗位等级以及基本

    上篇博客记录了我在mysql考试时遇到的报错,错过了考试时间[我不知道考试时间只有20分钟] 关于第二题,第三题,哪位大佬可以有点再简单的操作方法ma,或者其他方法,想学习学习,欢迎各位大佬指点指点! ...

  7. SQL表中插入一行或多行

    语句: INSERT INTO  `第一页` VALUES(789090799,111,11,1116,116); select * FROM `第一页` 结果输出: 注意,增加的一列数据数量要和原来 ...

  8. 在mysql表中如何变换列和行_在SQL中转换列和行的简单方法?

    有几种方法可以转换这些数据.在你最初的帖子中,你说PIVOT对于这个场景来说似乎太复杂了,但是可以很容易地使用UNPIVOT和PIVOTSQL Server中的函数. 但是,如果您无法访问这些函数,则 ...

  9. Excel如何删除表中空白单元格整行

    在数据处理时,有些单元格是空单元那么这一行数据都要删除,今天就分享一下怎么删除空单元格整行. 方法一 1.如下图,数据中包含一些空单元格,那么这一整行都是无效数据要删除.下面就给大家介绍一下快速删除的 ...

最新文章

  1. Matlab与线性代数 -- 矩阵的加法与减法
  2. 模糊综合评价法用什么软件实现_基于建管养一体化模式的钢桥面铺装方案综合评价分析...
  3. 深入理解CSS变形transform(3d)
  4. 计算机应用基础word表说课,制作word表格说课课件.ppt
  5. python测试开发教程_文档测试
  6. python 文件操作 os.path.join(path, *paths) 路径合成(追加)
  7. IntelliJ IDEA 2019 激活码 | 全产品 | 跨平台 | Goland | PhpStorm | Rider | CentOS | Windows
  8. java程序大笨钟怎么打,L1-018.大笨鍾(Java)PAT團體程序設計天梯賽-練習集
  9. C++面试宝典 基本语言(三)
  10. C++primer第九章 顺序容器 9.4 vector对象是如何增长的
  11. bio-linux_Bio-Linux:稳定,可移植的科学研究Linux发行版
  12. 报送数据标准校验java_Java:数据校验 - osc_gaqp1a2z的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. MySQL(三) —— 约束以及修改数据表
  14. c语言写识别电压的程序,PIC单片机C语言编程实例——交流电压测量
  15. 【时间序列分析】06. AR(p)序列的性质
  16. 全面了解风险决策引擎【一】
  17. 如何“拼”出一个页面-游戏中心模块化实践
  18. Lua实现md5加密
  19. c语言破解rar5文件,RAR5 文件格式解析
  20. 一本通 1255:迷宫问题

热门文章

  1. 关于可视化图表的研究思路
  2. 公司邮箱格式申请注册哪个好?
  3. Unity Hub安装Android环境 (Unity2019及以上支持)
  4. TF卡只读数据三年后的变化
  5. AI作恶?我们必须思考人工智能中的道德了!
  6. 【XingleiGao的日常】我的学习生活的一天 | 以我的一天启迪大家对时间的安排
  7. 中望CAD图纸的单页和批量pdf打印方式
  8. kairosdb时序数据库
  9. 【我的OpenGL学习进阶之旅】解决使用VAO的时候误用glDisableVertexAttribArray导致无法渲染出现白屏或者黑屏的问题
  10. 帮过网解析:教师编制的好处有哪些