首页 > 数据库 >bug笔记_oracle_无法在源表中获得一组稳定的行

bug笔记_oracle_无法在源表中获得一组稳定的行

时间:2022-09-23 15:36:37浏览次数:50  
标签:源表中 -- 重复 key oracle bug select column2

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

原因:Merge Into 语句 using表的关联字段对应多个条数据,导致修改语句无法确定以哪条数据为准(关联字段重复)

--修改a的column1字段为表b中(关联字段对应上的数据)column2的值,正常情况 b.key 值在表中不重复
merge into tableName1 a
using tableName2 b
on (a.key = b.key) 
when matched then update set a.column1 = b.column2;

解决:查询重复数据后再进行处理

select
    listagg(s.key,';') within group (order by s.key) as keyList  --用分号拼接成一个字段,也可直接写s.key列出
from (
select
        b.key,
count(b.id) as cnt --key对应的数据有几条
from tableName2 b
    group by b.key
)s
where s.cnt > 1;--取key重复的

 

 

标签:源表中,--,重复,key,oracle,bug,select,column2
From: https://www.cnblogs.com/luyuting/p/16722887.html

相关文章

  • sql 统计禅道系统中所有人已解决的bug(项目、产品、人)
    SELECTpd.NAMEAS产品,pj.NAMEAS项目,b.idASbug_id,b.titleASbug标题,la2.VALUEAS类型,b.`status`,u1.realnameAS提交人,......
  • Oracle数据库备份恢复
    数据库备份热备份(expdp/impdp导出/导入)通过expdp数据泵工具把老服务器数据导出到一个*.dmp文件中,然后在新服务器上通过impdp导入命令把dmp文件中的数据泵入到数据......
  • oracle备份数据库
    oracle备份数据库 1.连接远程数据库打开cmd执行sqlplus/nolog执行connect用户名/密码@IP:端口/服务名例:connectsystem/[email protected]:1521/ETYY2.创......
  • linux python连接oracle数据库
    最近公司要求在linux下对Mysql,Oracle进行增加用户,用户改密等操作。Mysql数据库实现起来比较简单,这个Oracle让我头疼了一阵。于是从网上查阅资料,经自己的测试以后终于成功,现......
  • 1.Oracle常用的日期函数
    1.获取某日所在周的第一天SELECTtrunc(to_date(‘2011-03-13’,‘YYYY-MM-DD’),‘iw’)FROMdual;2.获取当日所在周的第二天SELECTTO_CHAR(trunc(SYSDATE,......
  • Python操作Oracle数据库:cx_Oracle
    1安装与导入Python操作Oracle数据库多用cx_Oracle这个第三方扩展,总体而言,cx_Oracle的使用方式与Python操作MySQL数据库的pymysql库还是很相似的,如果还没有安装,可......
  • Oracle的clob数据类型
    字符串长度语法:DBMS_LOB.GETLENGTH(field)作用:获取filed字段的总长度,和length函数类似字符串截取场景:使用substr函数有时会无法解决clob数据类型的数据,我们可以使用DBM......
  • oracle 创建表空间
    oracle创建表空间oracle创建表空间可能很多人并不是很了解,下面就来简单介绍一下,主要是分为四步的,每一步的代码一定要认真研究,这样才能保证正确创建。 ......
  • Oracle索引并行度
    一.Rebuild索引与并行度说明在索引create和rebuild的时候,在CPU允许的情况下,我们可以使用parallel来加快操作的速度。但是这里有一个注意的问题,有关索引的并行度,这个对表......
  • Oracle DBCA 静默删除以及建库的脚本
    No.1背景公司最近有一个测试环境需要重新备份恢复但是里面有6个数据库实例400多G的数据文件.一般情况下需要dropuserxxxcascade;然后执行droptablespacexxx......