Исправление на уровне базы данных кажется наилучшей идеей, согласно принятому ответу, поскольку оно позволяет избежать неожиданного поведения.
Однако, если вы не хотите исправлять (или не можете получить доступ) на уровне базы данных, у меня сработало два способа заставить это работать. Я не уверен насчет второго, но хотел бы поделиться им на тот случай, если кто-то посчитает его полезным / сможет объяснить.
Мой выпуск
Это ошибка value too large for column
, о которой упоминает оригинальный автор.
Решение 1
Отмените OracleType
вручную после установки значения:
((OracleParameter)parm).OracleType = OracleType.Char;
Раствор 2
Чуть более хитроумно - просто используйте строку (я не понимаю, почему это работает, поэтому не стоит полагаться на нее):
parm.ParameterValue = "A"; // "A" instead of 'A'