Tôi đã sử dụng một truy vấn tham số để chèn giá trị vào một bảng Oracle, như vậy:Tại sao tôi nhận được ORA-01722 (số không hợp lệ)?
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();
này đã làm việc tốt, nhưng đột nhiên này đã ngừng làm việc, và tôi nhận được Oracle lỗi ORA-01.722 (số không hợp lệ). Tôi đã kiểm tra các tham số, và tất cả các con số là số không hợp lệ. Tôi thậm chí còn thay thế các giá trị giả cho bất kỳ null, và tôi vẫn nhận được lỗi. Tôi đã thử cùng một truy vấn trong sql trực tiếp (sử dụng OraDeveloper Studio), và nó hoạt động, ngay cả với các tham số giống nhau.
Làm cách nào để theo dõi sự cố này?
EDIT: theo yêu cầu trong các ý kiến, đây là tạo ra bảng báo cáo:
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;
Xin vui lòng gửi câu lệnh CREATE TABLE cho bảng. Tôi đoán là các giá trị bạn đang chèn lớn hơn giá trị được phân bổ cho loại dữ liệu. IE: Cột là NUMBER (3) và bạn đang cố chèn 1.000. –
tạo bảng sao kê được đăng. –