update T_Professor set weight_In_B_D = ((((weight_In_B_D + ?) - ?) *
?) / ?) where (id = ?)

I'm not sure why the arithmetic is carried out using different
intermediate scale and precision when you use dynamically substituted
values for the constants in your expressions.

Did you try using the SQL CAST() operator? Does that help at all?

There might be a way to use Derby stored procedures to enable you
to implement the numeric processing in your own Java code, rather
than in SQL, which could be a workaround.

The behavior you are seeing has the feel of a bug, though it's
certainly possible it could be defined SQL language behavior. But since
you have such a nicely-constructed test program, I think you should
file your issue in the Derby bug-tracking system so that the developers
can analyze it in more detail.

http://db.apache.org/derby/DerbyBugGuidelines.html

thanks,

bryan

Reply via email to