UPDATE RPT_TEMP_DATA C SET DESP =(select A.REGION_NAME from CCTD.REGION_CODE A,CCTD.CONTRACTN_ITEM B WHERE A.REGION_UNITCODE=B.REGION_UNITCODE AND C.D8=A.REGION_UNITCODE)
解决方案 »
- 浏览器进不了sqlplus!
- 麻烦推荐下 学习oracle的入门书,
- 关于oracle的审计问题!
- 求教oracle数据同步的问题
- oralce 由 8i 升迁到 9i,难吗?
- 请教:定时同步数据问题
- 如何写这个insert?
- win me 安装oracle客户端遇到问题了!
- 英文字符集oracle数据中的中文导入中文字符集oracle数据库中的乱码问题如何解决?
- 请教一个sql语句
- 当ORACLE与SQLSERVER2005中存在一个结构完全相同的表,在JAVA中如何实现当更新sqlserver2005中的表时同时也更新ORACLE中的表,请各位大侠们帮忙!
- 如何用jdbc调用oralce plsql 匿名块
先看这条语句返回是什么结果?
作为更新列的子查询不能返回多行值,既然你Update的值只会来源于CCTD.REGION_CODE,为何又要JOIN到CCTD.CONTRACTN_ITEM,如果CCTD.REGION_CODE对CCTD.CONTRACTN_ITEM为1:N的关系,那么结果显然会发散.正确的方法是
UPDATE (SELECT DESP,REGION_NAME RPT_TEMP_DATA A,CCTD.REGION_CODE B,CCTD.CONTRACTN_ITEM C WHERE A.D8=A.REGION_UNITCODE AND A.REGION_UNITCODE=B.REGION_UNITCODE) X
SET X.DESP=REGION_NAME
或者你能保证子查询能返回单行值的写法