易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle update from 问题!

  update t_tmprpt_firstreplycosttime t
set (t.firstreplytime,
t.dealstaff,
t.firstreplyfailcontent)
= (select a.suggesttime,
a.suggester,
substr(a.remark,instr(a.remark,'】',1)+2)
from t_wf_suggesthis a
where t.serialno = a.serialno
and t.serviceclassid = a.serviceclassid);
想把t_tmprpt_firstreplycosttime 表中的3个字段数据更新为t_wf_suggesthis表中的suggesttime, suggester,substr(a.remark,instr(a.remark,'】',1)+2)的值。条件是t表的sreialno和serviceclassid都与a表中的相等。
问题:当我执行这条更新时候会把t表中的所有数据都更新了。
解决:oracle中没update from 这样的更新,可以考虑2种解决办法。
一,
    update (select a.suggesttime atime,
b.firstreplytime btime,
a.suggester astaff,
b.dealstaff bstaff,
substr(a.remark,instr(a.remark,'】',1)+2) acontent,
b.firstreplyfailcontent bcontent
from t_wf_suggesthis a, t_tmprpt_firstreplycosttime b)
set btime = atime,
btaff = astaff,
bcontent = acontent;
这是类视图的更新方法,这也是oracle所独有的。
先把对应的数据全部抽取出来,然后更新表一样更新数据,这里需要注意的是,必须保证表的数据唯一性。
这就要求a,b两表的关联字段上都是具备唯一性的。
二,
update t_tmprpt_firstreplycosttime t
set (t.firstreplytime,
t.dealstaff,
t.firstreplyfailcontent)
= (select a.suggesttime,
a.suggester,
substr(a.remark,instr(a.remark,'】',1)+2)
from t_wf_suggesthis a
where t.serialno = a.serialno
and t.serviceclassid = a.serviceclassid)
where t.serialno in (select b.serialno
from t_wf_suggesthis b
where b.serialno = t.serialno
and b.serviceclassid = t.serviceclassid);
这种就是使用子查询来确定更新的数据。


相关文档:

“优秀示例”: Oracle代码规程

 在PL/SQL中使用阵列处理是一个很好的做法(如,使用bulk collect和forall)。批量处理能够大大减少PL/SQL语句执行引擎的环境切换次数,从而提高其性能。
  另一个优秀示例是把存储过程中的所有代码放入锁定的软件包中,这样可以生成模块单元。把存储过程放入软件包里可以实现相关程序和功能的分组。当
单个包被使用 ......

SQL Server和Oracle的常用函数对比

 ---------数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast ......

Oracle Form開發(4)

上節學習開第一個Form,這個節在添加一個彈出下拉框
第一步:添加記錄組
1.1  選中Record Groups
1.2  單擊Create
1.3  輸入查詢SQL
1.4  單擊OK
1.5  修改 ......

oracle基础知识1

 
1、默认事例:
用户名:scott密码:tiger 主机字符串:本机可以为空
2、启动方法:
运行:sqlplus scott/tiger@lhd
3、SQLPLUS基本命令:
Desc:显示表、视图结构  desc 表名,视图
List:列出SQL缓冲区区中的一行或多行命令语句
Exit:退出
4、常用的数据字典(三种前缀:USER,ALL,DBA)
USER_TABLE ......

Oracle用户名更改操作四步走

我们的Oracle管理工作中经常涉及到更改Oracle用户属性、密码之类的常用操作;但在某些应用场景下,会遇到Oracle用户名更改的需求,如何解决?下面通过四个步骤实现Oracle用户名的修改。
一、查询更改Oracle用户名
SQL> select user#,name,password from user$ where name ='TICKET ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号