有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将BLOB保存到数据库(ORA01460:未实现或不需要有意义的转换)

我有这张桌子:

CREATE SEQUENCE seqPublicFile START WITH 1 INCREMENT BY 1;
CREATE TABLE PublicFile(
  fileId INTEGER PRIMARY KEY,
  fileName varchar2(50),
  fileContent blob,
  publishDate date,
  publisherTeacher varchar2(50),
  CONSTRAINT fk_teacher1 FOREIGN KEY(publisherTeacher) REFERENCES Teacher(username)
);

当我尝试将新行保存到表中时:

conn = createConnection();
String select = "INSERT INTO PublicFile VALUES(seqPublicFile.NEXTVAL,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(select);
stmt.setString(1, "fs1.jpg");
File file = new File("C:\\Users\\schueler\\Desktop\\5AHIFS\\NVS\\fs1.jpg");
FileInputStream fis = new FileInputStream(file);
stmt.setBinaryStream(2, fis, (int) file.length());
stmt.setDate(3, Date.valueOf(LocalDate.now()));
stmt.setString(4, "nimda");
stmt.executeQuery();
conn.close();

我总是会遇到这样的错误:

ORA-01460: Unimplemented or not meaningful conversion required

我做错了什么?我还尝试了getBytes,并尝试以不同的方式读取文件,但每次尝试都会导致相同的错误

如何简单地读取文件并将其保存为blob


共 (0) 个答案