各位好!我需要把b表的数据更新到a表中 语句如下:
update cfg_bsc_map_city a set a.omcid=(select substr(b.omc_id,4,3)||'_'||b.city_id from
ne_bsc_g b where a.bscname=b.china_name)//a.bscname=b.china_name是唯一的
但是执行却报错,请问我这批量修改语句有问题吗?望指点呀!多谢啦!
update cfg_bsc_map_city a set a.omcid=(select substr(b.omc_id,4,3)||'_'||b.city_id from
ne_bsc_g b where a.bscname=b.china_name)//a.bscname=b.china_name是唯一的
但是执行却报错,请问我这批量修改语句有问题吗?望指点呀!多谢啦!
解决方案 »
- 两日期相减,得到一个毫秒数? 在线等
- 谁能说说SQL的数据是如何通过接口(有个接口程序)传到Oracle的?
- 一个关于update的问题,在线等待!
- 有达人能解释一下backward 和 forward Recovery 吗?
- 怎样导出一个用户的所有表?
- 关于用户授权的问题?请大侠帮忙啊!!
- 我在ORACLE里使用update...from进行多表更新,为什么报from语法错误“UPDATE A SET A.STATUS = 0 FROM ONE A,TWO B WHERE A.id=B.id”
- 请问一条关于两个列差的问题...谢谢
- 我想在PL/SQL里面创建JAVA存储过程,但编写好后却不能编译,提示:java system class not available. (applestudio
- oracle存储过程中可以调用外部的exe程序吗?
- 请问这个SQL该如何写?希望能够得到帮助
- ORA-03114 not coonected to ORACLE 问题
要批量修改可以先定义一个函数,如update(x)---- x 你要修改的字段名
然后用个PL_SQL语句块中设置一定条件循环调用这个函数!
update cfg_bsc_map_city a set a.omcid=(select substr(b.omc_id,4,3)||'_'||b.city_id from
ne_bsc_g b where a.bscname=b.china_name)
where exists (select 1 from ne_bsc_g where ne_bsc_g.china_name=a.bscname;
SELECT B.CHINA_NAME, count(*) as cnt
FROM NE_BSC_G B
GROUP BY B.CHINA_NAME
HAVING COUNT(*) > 1
;请执行上述语句,如果有查询到数据存在,则说明B表的资料不唯一。更新的逻辑需要重新考虑。谢谢!
update cfg_bsc_map_city a
set a.omcid=(select max(substr(b.omc_id,4,3)||'_'||b.city_id) from
ne_bsc_g b where a.bscname=b.china_name)