More information:
I simplified the code to this:
select forums_message.root_message_id(v_message_id) into v_root_message_id from dual;
update forums_messages
set last_child_post = posting_date
where message_id = v_root_message_id;
I used a raise_application_error call to verify that the v_root_message_id was correct.
I then selected the current value of last_child_post from forums_messages before the update, and verified that it was 09-09-2003 11:46:03 (time of the first post).
I then did the same thing *after* the update - got the same value back (time of the first post). It's as though that update is not taking place - but I have no idea why???
Suggestions appreciated. I have looked into this several times now and have been baffled each time.
PS Thanks, Dave, any help would be appreciated.