• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1734
  • Last Modified:

Keep getting error FRM-40735: PRE_SAVE trigger raised unhandled exception ORA-20000

In my Oracle forms program, when the user commits the form, the current values in the form are saved to the table. However, I also want to update a value in another record at the same time, i.e.

 update t
    set
      t_status_ind = 'I',
      t_activity_date = sysdate               
   where
    t_code = :t.t_code and t_seqno = :t.t_seqno-1
    and t_status_ind = 'A';

I tried putting this code in the post_update trigger but nothing happens. When I put the code in the pre_save trigger I get the error: PRE_SAVE trigger raised unhandled exception ORA-20000. I do not know if I am going about it in the right away or putting the code in the correct location. I would greatly appreciate your help!
0
geeta_m9
Asked:
geeta_m9
  • 6
  • 5
2 Solutions
 
sathyagiriCommented:
Try putting this code in the ON-COMMIT trigger
0
 
jwahlCommented:
Updates in the POST-COMMIT trigger are after the COMMIT (as the name says), that means you have to commit a second time after the update code to make the changes permanent.

if you put the code in the ON-COMMIT trigger, be sure to insert also COMMIT or COMMIT_FORM (because the on-commit trigger overwrites default commit logic of forms).
0
 
geeta_m9Author Commented:
I tried just now, but keep getting the same error.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
sathyagiriCommented:
Please post the complete error message. There should be something after the ORA-20000
0
 
sathyagiriCommented:
Also check if there are any database level triggers on your table "t".
20000 is normally a user defined exception raised by using RAISE_APPLICATION_ERROR
0
 
geeta_m9Author Commented:
Should I put the COMMIT_FROM before the code?
0
 
sathyagiriCommented:
Run this query on SQLPLUS to find if there are any database level triggers on table T
set long 99999
select trigger_name,trrigger_body from user_triggers where table_name = 'T';
1
 
geeta_m9Author Commented:
Yes, there is a database level trigger, I forgot about that. That must be what is causing the problem.
0
 
sathyagiriCommented:
Yes see what causes the database trigger to raise an exception. That's what is causing your form to throw an error.
0
 
geeta_m9Author Commented:
You're correct! I had to modify the database trigger, so now it is saving properly. Should I leave the code in the ON_COMMIT trigger or would it be better to put it in the POST_DATABASE_COMMIT trigger?
0
 
sathyagiriCommented:
I think ON_COMMIT should be fine
0
 
geeta_m9Author Commented:
Thanks for your help!
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now