gpt4 book ai didi

java.sql.SQLException : ORA-01461: can bind a LONG value only for insert into a LONG column 异常

转载 作者:行者123 更新时间:2023-11-30 09:35:21 26 4
gpt4 key购买 nike

我正在使用一个简单的界面(在 jsf 1.2 和 rich faces 3.3.2,Oracle 11g R1 中)让用户使用 rich:fileUpload 选择图片并保存在表中。作为测试,我创建了下表。

CREATE TABLE TEST
(
MIME_TYPE VARCHAR2 (1000),
PHOTO BLOB,
STUDENT_ID NUMBER NOT NULL
)

将图片保存到BLOB字段的代码片段如下。

//......From the uploadFile Listener
public void listener(UploadEvent event) throws Exception {
...
item = event.getUploadItem();
...
StudentPhotoDAO dao = new StudentPhotoDAO();
dao.storePhoto(item.getData(),item.getContentType(),studentId);
...
}


//......From the PhotoDAO ..........................


public void storePhoto(byte data[],String mimeType, Long studentId){
{
...
ByteArrayInputStream bis=new ByteArrayInputStream(data);
String query = "update TEST set PHOTO = ? ,MIME_TYPE = ? where STUDENT_ID=?";
pstmt = conn.prepareStatement(query);
pstmt.setAsciiStream(1,(InputStream)bis,data.length);
pstmt.setString(2,mimeType.toString());
pstmt.setLong(3,studentId);
pstmt.executeUpdate();
}

我收到以下错误:

java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column

请问代码哪里错了

谢谢。

最佳答案

您将 student_id 指定为 number,这似乎映射到 BigInteger。参见例如this table .

要么您提供一个 BigInteger,要么您需要更改 student_id 的类型。

关于java.sql.SQLException : ORA-01461: can bind a LONG value only for insert into a LONG column 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11393786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com