我正在尝试在java代码中执行查询,查询是:
String triggerQuery =
"CREATE OR REPLACE TRIGGER global_archive_01
AFTER INSERT ON archive_01 FOR EACH ROW
BEGIN
INSERT INTO archive
values (:NEW.id_01 , :NEW.id_02 , :NEW.id_03 , 'test' , :NEW.id_05);
END;"
Query query = session.createSQLQuery(triggerQuery);
query.executeUpdate();
当我尝试在 SQL Developer 中执行此查询时,它工作正常,但在 jdbc 中它抛出异常。
由以下原因引起:java.sql.SQLException:索引处缺少 IN 或 OUT 参数::1
Database: Oracle 10g
Hibernate: 3.0
最佳答案
事实证明,当您传递包含 : 的查询时,hibernate 会将其转换为查询中的参数,因此解决方案是在简单的 java 语句上执行查询。
Connection conn = session.connection();
Statement state = conn.createStatement();
state.execute(triggerQuery);
state.close();
关于sql - 索引::1 处缺少 IN 或 OUT 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22525350/