Warum erhalte ich eine ORA-01722 (ungültige Nummer)?

Ich habe eine parametrisierte Abfrage verwendet, um Werte in eine Oracle-Tabelle einzufügen:

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();

Dies hat einwandfrei funktioniert, aber plötzlich funktioniert dies nicht mehr und ich erhalte den Oracle-Fehler ORA-01722 (ungültige Nummer). Ich habe die Parameter überprüft und alle Zahlen sind unbestreitbar gültige Zahlen. Ich habe sogar Nullen durch Dummy-Werte ersetzt und erhalte trotzdem den Fehler. Ich habe die gleiche Abfrage in Direct SQL (mit OraDeveloper Studio) versucht und sie funktioniert auch mit den identischen Parametern.

Wie kann ich diesen aufspüren?

BEARBEITEN pro Anfrage in den Kommentaren, hier ist die Anweisung zum Erstellen einer Tabelle:

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;

Antworten auf die Frage(6)

Ihre Antwort auf die Frage