Не удается сохранить большой двоичный объект в базу данных (ORA-01460: требуется нереализованное или несущественное преобразование) - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть эта таблица:

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, и я попытался прочитать файл по-другому, но каждая попытка приводит к одной и той же ошибке.

Как я могу просто прочитать файл и сохранить его как большой двоичный объект?

...