You can use UPDATE table SET col = DEFAULT to set the value of a column to its Default value.

But that means you have to ASK Oracle to do it. I want the column to be defaulted on (almost) ANY update. Ideally, I would get a trigger to do this:

CREATE OR REPALCE TRIGGER trigname
BEFORE UPDATE ON tabname
FOR EACH ROW
WHEN (old.col1 = new.col1) -- ie. user is not updating col1, so the trigger will reset it.
BEGIN
:new.col1 := DEFAULT;
END;
/

This syntax is of course invalid: col1 := DEFAULT; is not a legal command.

Is there a way to do it that I cannot find in the doco or Google?

My fallback is to log the updated rows in a GTT with a trigger, and then perform an UPDATE SET DEFAULT WHERE ROWID IN (.. gtt ...) in an AFTER UPDATE statement level trigger, a-la-Mutating Table work-around.Ross Leishman