因为这张表是从别的数据库中的读取的数据,其中插入表的代码已经写死了。
想了半天,想用触发器完成以下功能:
在A表中插入数据后,触发器启动,把A表中B字段的值,进行四舍五入运算,保留一位小数
oracle基础知识不是很好,自己写了半天,没弄出来,现在求指教啊
谢谢了
------解决方案--------------------
create or replace trigger my_trigger
after insert of b on A
for each row
begin
update A set b=round(b,1) where 表中的时间;(不加时间就是全表更新一次,不好。)
end;
------解决方案--------------------
可以不用再对本表操作,可以不用自治事务
- SQL code
CREATE TABLE a(c1 NUMBER(20,5),c2 NUMBER(20,5));CREATE OR REPLACE TRIGGER xa BEFORE INSERT ON a FOR EACH ROW BEGIN :NEW.c2:=Round(:NEW.c2,1);END xa;INSERT INTO a VALUES (6.18,6.18);SELECT * FROM a;output:C1 C26.18 6.2