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

标签 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

最佳答案

事实证明,当您传递包含 : 的查询时,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/

相关文章:

c# - 尽管未调用complete(),TransactionScope 仍不回滚

php - 从 MySQL 查询生成单词列表

sql - 我们如何使用sql删除databricks笔记本中数据库下的所有表?

PHP和oracle存储过程

java - hibernate 。大结果和分页

java - hibernate 查询缓存指定缓存持续时间

Java SQL 从日期中减去一个小时

sql - 如何提高SQL插入查询性能?

java - 当记录数较多且某些列已建立索引时,如何优化 Oracle DB 中的插入率?

java - 陷入 Spring 性能问题