Oracle 能否实现自动修改数据?
Order 表示 客户(customer)购买不同的产品(product),并且预留客户的联系信息。有时候客户的一些订单的联系信息丢失了,例如:
Order:
customerid productid address tel
c1 p1 addres1 11111111
c1 p2 null null
该order表中的客户订单很多,怎样能让oracle检测在address和tell为null的情况下,自动从该客户的其他订单找到该客户的信息来修改丢失的address,tel信息。
update Order set address=(select max(address) from Order a where a.customerid=Order.customerid) where address is null
相同的写法,修改tel
LS的,在pl/sql developer或toad中手动执行是可以的,但怎样能让oracle自动实现修改呢?
这肯定得写个job去扫描...
具体请参照
http://topic.csdn.net/u/20100222/15/7c16a404-bfee-4730-9c72-a7d45bd851b4.html?39117
我以前也遇到过类似问题。。后来就是用job搞定的。。。
利用触发器
.
用job吧。。其实这个也有问题,如果有的同一个客户address和tell有好几个版本。。那就不知道该找哪个了
我觉得得用定时器,同一个表无法用触发器来实现自动更新的,触发器只能出发其他表,不能出发自己
相关问答:
大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
大家好,我现在把oracle服务器上面 ......
exp user/password@dbname file=c:\table.dmp tables=jbitaku,jbitakum grants=y
然後按回車鍵 說明: user/password@dbname 分別表示用戶名,密碼和服務名 f ......
在执行包的时候引用oracle spatial空间函数出错,出错情况如下
Errors in file
/user/oracle/app/oracle/admin/grid/udump/grid1_ora_143768.trc: ORA-29902:
error in executing ODCIIndexStart() routine ORA-0 ......
查看事务隔离级别的命令,
MySQL使用的是select @@tx_isolation;
在Oracle中查看事务隔离级别的命令是哪个?
SQL code:
SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK', ......