您的位置:首页 > 数据库 > Oracle

Why And When To Use Pre-Update and Pre-Insert Triggers In Oracle Forms

2016-12-25 19:09 597 查看
[align=justify]Whenever we commit after entering data in Oracle Forms, many triggers fires during this event and also Pre-Update and Pre-Insert triggers fires just before inserting or updating the record into table. We can write Pre-Update and Pre-Insert triggers on particular block to just allow the process or to stop the process by using "Raise Form_Trigger_Failure" command, the following are the some examples:[/align] [align=justify] [/align] [align=justify]Suppose you have a data block and there is a field which need to be validate just before inserting the record, then you must write the Pre-Insert trigger for this purpose, below is an example:[/align] [align=justify] [/align] [align=justify] Declare
v_avl_qty number;
Begin
Select avl_qty into v_avl_qty
From stock_inhand
Where Item_Code = :Block1.item_code;
if v_avl_qty < :Block1.qty_issued then
Raise Form_Trigger_Failure;
--- Execution stopped...
end if;
--- Else insertion will take place...
End;[/align]
And now I am giving you another example, suppose there is a field which need to be assigned from database just before the updation of the record, then you must write a Pre-Update trigger for this purpose, below is an example:

Declare
v_value varchar2(10);
Begin
Select a_value into v_value
From a_table
Where b_value = :Block1.b_value;
--- Assign this value to block item
:Block1.a_value := v_value;
--- you can assign any others value to any field just before updation or insertion like:
:Block1.create_date := Sysdate;
Exception
when others then
--- After any error or no data found you still want to continue then you can use only Null; statement
Null;
--- and any other value to any field you can still assign
:Block1.create_date := Sysdate;
End;
[align=left]See also: Pre-Update and Pre-Insert Trigger Examples For Oracle Forms[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: