我正在尝试在我的Oracle 10g数据库中创建一个插入查询。它一直给我这个错误:
ERROR PARSER:33 - 第1行:115:意外令牌:价值
这是我要插入的DAO方法
public void uploadFile(String createUser, Integer id, byte[] file, String name, String size, String mime) {
Session session = getSessionFactory().openSession();
try {
Query up = session.createSQLQuery("INSERT INTO FILES(CREATE_DATE, CREATE_USER, FILE_DATA, FILE_ID, FILE_MIME, FILE_NAME, FILE_SIZE, ID) VALUES(SYSDATE, :createUser, :file, FILE_ID_SEQ.nextval, :mime, :name, :size, :id) ");
up.setInteger("id", id);
up.setBinary("file", file);
up.setString("name", name);
up.setString("size", size);
up.setString("mime", mime);
up.setString("createUser", createUser);
up.executeUpdate();
} catch(HibernateException e) {
throw new HibernateException(e);
} finally {
session.close();
}
}
答案 0 :(得分:1)
仅支持INSERT INTO ... SELECT ...表单;不是INSERT INTO ... VALUES ...形式。
核心参考,第13章。
Ups,对不起,这是简单的sql,我什么都不说。
答案 1 :(得分:0)
检查列列表,你错过了大小:
FILES(CREATE_DATE, CREATE_USER, FILE_DATA, FILE_ID, FILE_MIME, FILE_NAME, ID)
VALUES(SYSDATE, :createUser, :file, FILE_ID_SEQ.nextval, :mime, :name, :size, :id)