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)
解决方案 »
- 请教关于分区和user_extents表的问题
- oracle中关于return的疑问
- 一个有意思的语句问题
- 请教一个关于pl/sql的问题
- FORMS 中的随机函数怎么写
- ORACLE 导入 未知字符集标记错误 急急急!!
- 求一个SQL语句
- 一个关于时间计算的问题!!急啊!我们头等着要结果呢!
- 哪位兄弟能向小弟说一下面向对象的数据结构和面向过程数据结构的区别?
- Oracle Exception
- 当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
或者你能保证子查询能返回单行值的写法