This topic has been archived. It cannot be replied.
-
工作学习 / IT技术讨论 / 各位ORACLE高手帮忙,小弟要写一个简单的TRIGGER。谢谢!有一个TABLE有6个COLUMN 其中有一个是MODIFY DATE,三个是做PRIMARY KEY,两个是BLOB。我UPDATE两个BLOB时想用TRIGGER来UPDATE MODIFY DATE。怎么做?给个SYNTAX的框价就行。
-sillyboy(silly);
2001-11-24
{162}
(#274453@0)
-
难道UPDATE BLOB与UPDATE一般类型有什么不同?
-mickeymouse(没有DB的DBA);
2001-11-25
(#274722@0)
-
他的意思是UPDATE BLOB后用trigger去UPDATE DATE。
-unit18(brimwood);
2001-11-25
(#275041@0)
-
这个我知道。我是想问是一般的trigger和update blob触发的trigger有什么不同吗?还是他不知道普通的trigger怎么写?
-mickeymouse(没有DB的DBA);
2001-11-25
(#275247@0)
-
那你就写个一般的吧,我试试看。
-sillyboy(silly);
2001-11-25
(#275249@0)
-
这是我写的请指教
-sillyboy(silly);
2001-11-26
{612}
(#275864@0)
-
Don't use trigger in this situation.I think you should define a default valuse as SYSDATE for the column CREATE_DATE. When the column is update and no value is assigned to the column CREATE_DATE,then its value is SYSDATE.
You can not use UPDATE OF clause when you create a trigger on LOB,BLOB columns.
You can not read the :NEW value when you create a trigger on LOB,BLOB columns, that's why your trigger never executed.
-laotang(laotang);
2001-11-26
{388}
(#275912@0)
-
如果你坚持要用Trigger,可以这样写:CREATE OR REPLACE TRIGGER UBLOB
BEFORE UPDATE ON USER_PROFILES
--注意是BEFORE,不是AFTER
FOR EACH ROW
BEGIN
:new.CREATE_DATE := SYSDATE;
END
-laotang(laotang);
2001-11-26
{152}
(#275923@0)
-
你写的完全正确,不过早上我试过了,对BLOB的COLUMN无效!看来只能在程序里写了.不过有些奇怪为什么是BEFORE?
-sillyboy(silly);
2001-11-26
(#276188@0)
-
建议你系统的看看ORACLE文档中关于TRIGGER这部分。特别是关于TRIGGER的处理机制。
-sameway(sameway);
2001-11-26
(#276414@0)