ORA-30926: 无法在源表中获得一组稳定的行
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: 无法在源表中获得一组稳定的行相关推荐
- ORA-30926 无法在源表中获得一组稳定的行 Merge into 实战
ORA-30926 无法在源表中获得一组稳定的行 && Merge into 实战 merge into 时需要一个唯一的key值来决定merge into的操作是insert int ...
- 无法在源表中获得一组稳定的行_行输出变压器的结构、符号及电路分析
行输出变压器又称逆程变压器.回扫变压器,俗称行输出,它是电视机.显示器中的一个重要变压器. 1.行输出变压器结构 行输出变压器的全部绕组和高压整流管均密封在其中,底部引出各个绕组的引脚,高压输出采用高 ...
- Merge碰到ORA-30926 无法在源表中获得一组稳定的行
原因是using的结果里出现关联字段重复的记录,比如 MERGE INTO A USING B ON (B.ID=A.ID) .... 在B表有相同ID的多条记录
- SQL-61 对于employees表中,给出奇数行的first_name
题目描述 对于employees表中,给出奇数行的first_name CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_dat ...
- 对于employees表中,给出奇数行的first_name
对于employees表中,给出奇数行的first_name CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` da ...
- MySQL期末考试题目 题目1:查询employee数据表中的第5—8行的数据;题目2:查询每个部门的员工人数以及平均工资;题目3:查询‘孙威’的基本信息,包括员工编号、所在部门名称、岗位等级以及基本
上篇博客记录了我在mysql考试时遇到的报错,错过了考试时间[我不知道考试时间只有20分钟] 关于第二题,第三题,哪位大佬可以有点再简单的操作方法ma,或者其他方法,想学习学习,欢迎各位大佬指点指点! ...
- SQL表中插入一行或多行
语句: INSERT INTO `第一页` VALUES(789090799,111,11,1116,116); select * FROM `第一页` 结果输出: 注意,增加的一列数据数量要和原来 ...
- 在mysql表中如何变换列和行_在SQL中转换列和行的简单方法?
有几种方法可以转换这些数据.在你最初的帖子中,你说PIVOT对于这个场景来说似乎太复杂了,但是可以很容易地使用UNPIVOT和PIVOTSQL Server中的函数. 但是,如果您无法访问这些函数,则 ...
- Excel如何删除表中空白单元格整行
在数据处理时,有些单元格是空单元那么这一行数据都要删除,今天就分享一下怎么删除空单元格整行. 方法一 1.如下图,数据中包含一些空单元格,那么这一整行都是无效数据要删除.下面就给大家介绍一下快速删除的 ...
最新文章
- Matlab与线性代数 -- 矩阵的加法与减法
- 模糊综合评价法用什么软件实现_基于建管养一体化模式的钢桥面铺装方案综合评价分析...
- 深入理解CSS变形transform(3d)
- 计算机应用基础word表说课,制作word表格说课课件.ppt
- python测试开发教程_文档测试
- python 文件操作 os.path.join(path, *paths) 路径合成(追加)
- IntelliJ IDEA 2019 激活码 | 全产品 | 跨平台 | Goland | PhpStorm | Rider | CentOS | Windows
- java程序大笨钟怎么打,L1-018.大笨鍾(Java)PAT團體程序設計天梯賽-練習集
- C++面试宝典 基本语言(三)
- C++primer第九章 顺序容器 9.4 vector对象是如何增长的
- bio-linux_Bio-Linux:稳定,可移植的科学研究Linux发行版
- 报送数据标准校验java_Java:数据校验 - osc_gaqp1a2z的个人空间 - OSCHINA - 中文开源技术交流社区...
- MySQL(三) —— 约束以及修改数据表
- c语言写识别电压的程序,PIC单片机C语言编程实例——交流电压测量
- 【时间序列分析】06. AR(p)序列的性质
- 全面了解风险决策引擎【一】
- 如何“拼”出一个页面-游戏中心模块化实践
- Lua实现md5加密
- c语言破解rar5文件,RAR5 文件格式解析
- 一本通 1255:迷宫问题