Committing at the database level seems like the best idea according to the accepted answer - as it avoids any amazing behavior.
However, if you do not want to fix (or cannot access) at the database level, this worked for me in two ways. Iām not sure about the second, but I wanted to share it if someone finds it useful / can explain it.
My problem
This causes a value too large for column error that the original poster mentions.
Solution 1
Manually override OracleType after setting the value:
((OracleParameter)parm).OracleType = OracleType.Char;
Decision 2
A little more dodgy - just use the line (I don't understand why this works, so it would be wary to rely on it):
parm.ParameterValue = "A"; // "A" instead of 'A'
jlb83 source share