Почему я получаю ORA-01722 (неверный номер)?

Я использовал параметризованный запрос для вставки значений в таблицу Oracle, например так:

var q = "insert into MyTable(Field1, Field2...) values(:Field1, :Field2...)";
var cmd = new OracleCommand(q, conn); // conn is a pre-existing connection
cmd.Parameters.Add("Field1", field1Val); 
cmd.Parameters.Add("Field2", field2Val);
// etc...
cmd.ExecuteNonQuery();

Это работало нормально, но вдруг это перестало работать, и я получаю сообщение об ошибке Oracle ORA-01722 (неверный номер). Я проверил параметры, и все числа, несомненно, являются действительными числами. Я даже подставил фиктивные значения для любых нулей, и я все еще получаю ошибку. Я пробовал тот же запрос в прямом sql (используя OraDeveloper Studio), и он работает, даже с одинаковыми параметрами.

Как мне отследить это?

РЕДАКТИРОВАТЬ: для запроса в комментариях, вот заявление о создании таблицы:

CREATE TABLE ALPHA.VISITFINDINGS (
  ID NUMBER(12),
  VISITID NUMBER(12) NOT NULL,
  DESCRIPTION VARCHAR2(100),
  CUSTOMIMAGE CLOB,
  VISUALFINDINGSSECTIONMAPID NUMBER(12),
  FINDINGSID NUMBER(12),
  CONSTRAINT FK_VISITFINDINGS_AREA FOREIGN KEY (VISUALFINDINGSSECTIONMAPID)
    REFERENCES ALPHA.VISUALFINDINGSSECTIONMAP(VISUALFINDINGSSECTIONMAPID),
  CONSTRAINT FK_VISITFINDINGS_FINDINGS FOREIGN KEY (FINDINGSID)
    REFERENCES ALPHA.FINDINGS(FINDINGSID),
  CONSTRAINT FK_VISITFINDINGS_VISIT FOREIGN KEY (VISITID)
    REFERENCES ALPHA.VISITS(VISITID),
  CONSTRAINT PK_VISITFINDINGS PRIMARY KEY (ID))
TABLESPACE USERS
STORAGE (
  INITIAL 64K
  MAXEXTENTS UNLIMITED
)
LOGGING;

Ответы на вопрос(3)

Ваш ответ на вопрос