java call oracle procudure setBoolean问题PLS-00306: wrong number or types of arguments in call to

http://www.itpub.net/forum.php?mod=viewthread&action=printable&tid=1186364

java代码如下 可能是不能传递boolean型参数所致,大家有什么好方法没有?谢谢

try {
    clstmt = conn.prepareCall("{? = call my_test(?,?,?)}");
    clstmt.registerOutParameter(1, Types.VARCHAR);
    clstmt.setString(2, "1111111");
    clstmt.setBoolean(3, false);
    clstmt.registerOutParameter(4, Types.VARCHAR);
    clstmt.execute();
} catch (SQLException e) {
    System.out.println(e.getMessage());
}




java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'IU_DELTA_STAGE_CLEANUP'
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'IU_DELTA_STAGE_CLEANUP'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
        at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:212)
        at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:951)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
        at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4223)
        at pkg_test.main(pkg_test.java:31)

 

 

=====================

oracle 最后会把true翻译成1,false 翻译成0, 都是number类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值