Whenever we commit after entering data in Oracle Forms, many triggers fires during this event and also 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:
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:
Declarev_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 thenRaise Form_Trigger_Failure;--- Execution stopped...end if;--- Else insertion will take place...End;
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;
See also: