Can't notice anything suspicious in these triggers.
But I've got one idea that maybe some NLS session settings are
different when you connect to database using Rails compared to when
you connect to database in normal way. As a result probably some type
conversion functions like TO_DATE might fail if they expect some NLS
specific data format. Do you set the same values for NLS_LANG (and
maybe some other) environment variables when you connect from Rails to
database? (And you need to set these environment variables before
starting Ruby as Oracle Instant Client will not see environment
variables that you set just in Ruby)
And also you can try to test it from script/console using
ActiveRecord::Base.connection.execute "UPDATE samples SET
activity_code = 'A' WHERE sampleno = 1978952"
This will bypass any ActiveRecord type conversions.
If you can then try to disable triggers one by one to find out which
could cause the issue (and maybe start with disabling all triggers to
find out if triggers are causing the issue).
Raimonds