oracle update更新语句

本文讲述了在Oracle数据库中使用UPDATE语句时遇到的问题,即当没有找到匹配条件的记录时,字段会被清空。作者通过实例展示了如何更新特定记录,并通过添加WHERE子句来防止其他记录被错误更新。最终,成功更新了166条记录,并给出了插入新记录的SQL语句。
摘要由CSDN通过智能技术生成

        我将整理后的excel表格供应商Email地址数据导入到专门建的临时“表AAA_EMAIL”(字段有org,pri,email,sita3),为了更新现有“供应商联系表organisationcomm”中的部分记录的相关字段(email,sita3),两张表采用联合主键org + pri 确定为唯一记录。表AAA_EMAIL共有206条记录,我做了与表organisationcomm的连接,显示有166条在表organisationcomm记录中是存在的,只需更新email,sita3两字段就行。另外40条则需要插入到表organisationcomm中。

        我打算分两步做,第一步先更新表AAA_EMAIL在表organisationcomm中已有的记录,第二步做新增操作。更新操作,我想起上回做执行更新SQL语句时,Oracle会把条件匹配的记录做相应更新,但是找不到相应条件匹配的记录其字段却会被清空!!!  之前上网搜过,了解这是Oracle的特点,这个特点让我们写update语句都很麻烦。我测了如下的SQL语句,果然显示1886条记录被更新,1886条是organisationcomm表的记录总数,而按道理说应该只更新166条才对。

update organisationcomm o
   set (email, sita3) =
       (select t.email, t.sita3
          from AAA_EMAIL t
         where trim(t.org) = trim(o.organisation)
           and trim(t.pri) &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值