【问题标题】:ctx_ddl.sync_index running from java code从 java 代码运行的 ctx_ddl.sync_index
【发布时间】:2021-07-16 05:45:40
【问题描述】:

我被要求检查是否有办法从 java 代码中执行存储过程 ctx_ddl.sync_index。

我尝试将其作为普通存储过程 {ctx_ddl.sync_index{?,?}} 执行,我使用的是 spring jdbc。

connection = jdbcTemplate.getDataSource().getConnection();
CallableStatement callableStatement = connection.prepareCall("{call ctx_ddl.sync_index(?,?)}");  
callableStatement.setString(1, "index");
callableStatement.setString(2, " 2M");
callableStatement.executeUpdate();

它给了我一个异常 \n character found 。由于对我的电脑(org pc)的限制,我无法复制异常,将尝试添加它。

我们如何从 java 调用这个 ctx_ddl.sync_index ?

【问题讨论】:

    标签: java spring database oracle spring-jdbc


    【解决方案1】:

    你应该使用call:

    CallableStatement callableStatement = connection.prepareCall("{call ctx_ddl.sync_index(?,?)}");  
    
    

    并修正代码中的一个错字:.sync_index(?,?})}? 之后的额外 }

    CallableStatement callableStatement = connection.prepareCall("{call ctx_ddl.sync_index(?,?})}");  
    

    【讨论】:

    • 抱歉,我在使用调用时打错字了,调用过程的语法是正确的,即使这样我也得到了异常
    • @mktl 哪个异常?错误代码,错误信息?
    • 另外,请查看更新后的答案:您有一个错字 - 在.sync_index(?,?})} 中的} ? 之后有额外的}
    猜你喜欢
    • 2013-12-05
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    相关资源
    最近更新 更多