索引:: 1处缺少IN或OUT参数

时间:2014-03-20 06:41:59

标签: sql oracle hibernate jdbc triggers

我正在尝试在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

1 个答案:

答案 0 :(得分:5)

事实证明,当您传递包含的查询时,hibernate会将其转换为查询中的参数,因此解决方案是在简单的java语句上执行查询。

Connection conn = session.connection();
Statement state = conn.createStatement();
state.execute(triggerQuery);
state.close();