oracle的觸發器執行插入

2021-09-02 06:22:45 字數 1268 閱讀 1016

create or replace trigger tr_msdata

--當插入資料的時候進行運算

before insert on ms_realdata1 for each row

declare

ua  number(12,2); --a相電壓

ub  number(12,2); --b相電壓

uc  number(12,2); --c相電壓

ia  number(12,2); --a相電流

ib  number(12,2); --b相電流

ic  number(12,2); --c相電流

pfa1 number(12,2); --a相功率因素

pfb1 number(12,2); --b相功率因素

pfc1 number(12,2); --c相功率因素

begin

if inserting then

ua := :new.votagea;

ub := :new.votageb;

uc := :new.votagec;

ia := :new.currenta;

ib := :new.currentb;

ic := :new.currentc;

pfa1 := :new.pfa;

pfb1 := :new.pfb;

pfc1 := :new.pfc;

:new.activepowera := 1.732*ua*ia*pfa1;

:new.activepowerb := 1.732*ub*ib*pfb1;

:new.activepowerc := 1.732*uc*ic*pfc1;

:new.reactivepowera := 1.732*ua*ia*sqrt(1-pfa1);

:new.reactivepowerb := 1.732*ua*ia*sqrt(1-pfb1);

:new.reactivepowerc := 1.732*ua*ia*sqrt(1-pfc1);

:new.powertotal := :new.activepowera+:new.activepowerb+:new.activepowerc;   --三相總功率=abc三相有功功率之和

:new.pftotal := :new.powertotal/(:new.reactivepowera+:new.reactivepowerb+:new.reactivepowerc+:new.powertotal);  --三相功率因素

end if;

end;

ORACLE觸發器 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...

Oracle的觸發器

每當乙個特定的數操作語句 insert,update,delete 在指定的表上發出時,oracle自動的執行觸發器中定義的語句序列。這個定義,大家看到就能明白觸發器的作用了,增刪改查,為什麼觸發器沒有查詢呢。因為oracle的觸發器是針對資料變動時所觸發的一種待定行動。比如你刪除了乙個表中的字段,...

Oracle觸發器介紹 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸 髮器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例一 個簡...