ora-01427批量更新表的时候提示单行子查询返回多个行

article/2025/9/27 22:12:41

这是刚开始的更新语句:根据AMCARD表的ACCTCOMPID和ACCTDEPID字段关联LSBMZD表的LSBMZD_DWBH和LSBMZD_BMBH,得到相对于的LSBMZD_ID,然后根据这个LSBMZD_ID列匹配HRORGINFO表的MAPPINGORG字段,最终得到HRORGINFO表的NM字段,将AMCARD的USEDEPTID字段批量更新为NM字段

UPDATE AMCARD SET USEDEPTID=(
SELECT NM FROM HRORGINFO WHERE MAPPINGORG=(
SELECT LSBMZD_ID FROM LSBMZD WHERE LSBMZD_DWBH=ACCTCOMPID AND LSBMZD_BMBH=ACCTDEPTID
)
)

执行之后得到错误提示:


然后根据更新语句写出查询语句

SELECT AMID,NM,ACCTCOMPID,ACCTDEPTID,LSBMZD_ID,MAPPINGORGFROM AMCARD,LSBMZD,HRORGINFO WHERE USEDEPTID IS NULLAND LSBMZD_DWBH=ACCTCOMPIDAND LSBMZD_BMBH=ACCTDEPTIDAND LSBMZD_ID=MAPPINGORG

得出查询结果:


很容易看出NM字段是大量重复值组成的,所以才会提示单行子查询返回多个行。

我的解决办法是根据唯一的ID列形成一一对应再执行更新,保证每一行只有一条记录就可以了。

要更新的AMCARD表中AMID是唯一的,因此我把AMID加入到查询结果中作为临时表t,再根据AMID=t.AMID就可以实现单行更新了,执行语句如下:

UPDATE AMCARD SET USEDEPTID=(SELECT NM FROM(SELECT AMID AS A,NMFROM AMCARD,LSBMZD,HRORGINFO WHERE USEDEPTID IS NULLAND LSBMZD_DWBH=ACCTCOMPIDAND LSBMZD_BMBH=ACCTDEPTIDAND LSBMZD_ID=MAPPINGORG)TWHERE AMID=T.A)WHERE USEDEPTID IS NULL
这样就可以执行了。

http://chatgpt.dhexx.cn/article/h7Bib3xH.shtml

相关文章

update时 单行子查询返回多个行 SQL 错误 [1427] 处理方案

我遇到此错误是在多表关联update的 UPDATE EDASYS.CELL_COMPONENT_T A SET A.ARRAY_GLASS_ID (SELECT M.ARRAY_GLASS_ID FROM EDASYS.CELL_ARRAY_CF_MAPPING_T M WHERE M.CF_GLASS_ID A.COMPONENT_ID AND rownum < 2) WHERE EXISTS (SELECT 1 FROM EDASYS.CELL_ARR…

13.子查询返回多行多列的数据

假设有下面两张表: 部门表dept 雇员表emp 列出公司各个部门的经理的姓名、薪金、部门名称、部门人数、部门平均工资。 步骤1&#xff1a;查找每个部门经理的姓名和薪金。 select ename,sal from emp where jobMANAGER; 步骤2&#xff1a;连接dept表&#xff0c;查询部门名称。…

oracle单行子查询返回多个行 order by,请教单行子查询返回多个行的问题

原帖由 风铃中の鬼 于 2009-9-23 11:10 发表 写问题的时候突然蹦出来个工作..拖延了下时间..具体问题在上面3楼 我当初提供给你的语句没有问题&#xff01; 测试如下&#xff01; SQL> select * from tab_temp; TAB_ID PRO_ID NET_ID ---------- ---------- ------…

oracle单行子查询返回多个行 order by,单行子查询返回多个行 Issue分析求助

with order_base as --获取订单基础情况 ( select ou.order_key order_key, ou.order_quantity_i, ood.dispatch_time_t, ou.part_number_s, I032ZZ01 pline_name_s from order_uv ou left join at_as_om_orderdispatchstatus ood on ou.order_key ood.order_54 union all sel…

【转】ORA-01427: 单行子查询返回多个行,连表查询去重

转自&#xff1a;http://blog.chinaunix.net/uid-23 实例1 有人问题我一个问题&#xff0c;情况如下&#xff1a;他要用根据divide_act_channel_day的new_amount字段去更新divide_stat的new_amount字段。两张表关联的条件:daylog_time,channelchannel--SQL如下&#xff1a;up…

关于子查询报错返回多行数据

项目场景&#xff1a; 子查询报错返回多行数据 问题描述 在查询数据时有两个功能都在操作同一个表,导致子查询查询数据是报错子查询返回多调数据 原因分析&#xff1a; 我遇到的问题所分析是因为两个功能操作同一个表,将查询条件字段改变了,经查询是该字段本来一对一查询更改…

ORA_01427 单行子查询返回多个行

同事反馈线上生产环境在统计报表数据时报错&#xff0c;测试环境没问题&#xff0c;对比代码相同的情况下&#xff0c;将异常锁定在数据问题上面&#xff0c;于是申请了服务器日志查询&#xff0c;发现了ORA_01427&#xff08;单行子查询返回多个行&#xff09;的报错&#xff…

SQL学习之子查询,基于Oracle下的HR用户(四)

六、 子查询 1 子查询介绍 1.1 什么是子查询 子查询是一个 SELECT 语句&#xff0c;它是嵌在另一个 SELECT 语句中的子句。 可以用组合两个查询的方法解决这个问题&#xff0c;放置一个查询到另一个查询中。内查询或子查询返回一个值给外查询或主查询。使用一个子查询相当于执行…

ORA-01427:单行子查询返回多个行

今天sql进行查询时&#xff0c;执行sql语句弹出单行子查询返回多个行的错误提示 经过整改解决了这个问题 1.错误产生原因 原sql语句(为方便理解进行简化)&#xff1a; select * from 表a a where a.name (select b.name from 表b b where b.name 张三 ) 原本想通过&#…

lwl,lwr

lwl,lwr,swl,swr中的指令后缀r(right),l(left)都是相对寄存器而言&#xff0c;load操作是把取到的部分数据&#xff0c;置入寄存器的left或者right&#xff0c;store操作时将寄存器中的数据的 left或者right部分写入目标地址。无论时大端和小端寄存器的格式都是固定的&#xff…

1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授

程序示例–局部加权线性回归 现在&#xff0c;我们在回归中又添加了 JLwr() 方法用于计算预测代价&#xff0c;以及 lwr() 方法用于完成局部加权线性回归&#xff1a; # coding: utf-8 # linear_regression/regression.py# ...def JLwr(theta, X, y, x, c):"""…

LWE和RLWE问题学习

LWE概念 又称误差还原&#xff0c;容错学习问题&#xff0c;即已知一个矩阵 A A A以及一个向量&#xff0c;求解 b ^ A x e \hat{b}A xe b^Axe 这里 e e e是一个固定数值范围内随机采集的一个随机噪音向量&#xff0c;所以这个问题就转化为通过 A A A和 b ^ \hat{b} b^来还…

同态加密简介

同态加密概述 基本概念 同态加密&#xff08;Homomorphic Encryption,HE&#xff09;指将原始数据经过同态加密后&#xff0c;对密文进行特定的运算&#xff0c;得到的密文计算结果在进行同态解密后的得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。 历史与…

机器学习笔记(一)-局部加权回归(Locally weighted regression)LWR

在网上通过看斯坦福大学的机器学习课程&#xff0c;觉得讲的非常好。同时&#xff0c;为了加强自己的记忆&#xff0c;决定将自己学到的东西和一些理解记录下来&#xff0c;希望有所收获。废话不多说&#xff0c;直接开始笔记&#xff1a; 局部加权回归&#xff08;locally we…

ROS中7自由度机械臂自定义发布订阅节点

本篇用来记录一次作业的学习例程&#xff0c;错误之处敬请谅解&#xff0c;后续修改 作业要求&#xff1a; 写两个ROS节点&#xff0c;一个节点发布连续变化&#xff08;可以按sin曲线变化&#xff09;的7自由度的关节角信息&#xff1b;另一个节点订阅第一个节点发布的关节角…

【自己动手写CPU】加载存储指令的实现

目标 修改之前一直做测试的sopc&#xff0c;为其添加数据RAM&#xff0c;测试一般加载指令的实现&#xff0c;加入特殊加载存储指令。 探讨由于加载指令引起的load相关问题&#xff0c;给出OpenMIPS的解决方法&#xff0c;验证解决效果。 加载存储指令说明 31-2625-2120-161…

自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)

将陆续上传新书《自己动手写CPU》。今天是第38篇&#xff0c;我尽量每周四篇&#xff0c;可是近期已经非常久没有实现这个目标了。一直都有事&#xff0c;不好意思哈。 开展晒书评送书活动&#xff0c;在亚马逊、京东、当当三大图书站点上&#xff0c;发表《自己动手写CPU》书评…

LWR--local weighted regression

转自http://www.cnblogs.com/jeromeblog/p/3396486.html 简单回顾一下线性回归。我们使用了如下变量&#xff1a; x —输入变量/特征&#xff1b; y —目标变量&#xff1b; (x,y) —单个训练样本&#xff1b; m —训练集中的样本数目&#xff1b; n —特征维度&#xff1b; (x…

局部加权回归(LWR) Matlab模板

将百度文库上一份局部加权回归的代码&#xff0c;将其改为模板以便复用。 q2x,q2y为数据集&#xff0c;是n*1的矩阵&#xff1b; r是波长参数&#xff0c;就是对于距离的惩罚力度&#xff1b; q_x是要拟合的数据横坐标&#xff0c;是1*n的矩阵&#xff1b; 得到的q_y即为所求坐…

自己动手写CPU之第九阶段(2)——加载存储指令说明2(lwl、lwr)

将陆续上传新书《自己动手写CPU》&#xff0c;今天是第38篇&#xff0c;我尽量每周四篇&#xff0c;但是最近已经很久没有实现这个目标了&#xff0c;一直都有事&#xff0c;不好意思哈。 开展晒书评送书活动&#xff0c;在亚马逊、京东、当当三大图书网站上&#xff0c;发表…