Oracle JDBC的CallableStatement getParameterMetaData()的替代方法是什么.getParameterType()?

时间:2016-04-07 02:17:51

标签: java jdbc ojdbc

以下代码抛出异常:

CallableStatement cs = ...
cs.getParameterMetaData().getParameterType( columnIndex );

Caused by: java.sql.SQLException: Unsupported feature
    at oracle.jdbc.driver.OracleParameterMetaData.getParameterType(OracleParameterMetaData.java:166)
    ... 26 more

获取参数类型的另一种方法是什么?

1 个答案:

答案 0 :(得分:2)

如果有人能提供更好的答案,我会接受你的。所以这是我对自己问题的回答。

CallableStatement cs = ...
for( int i = 1; i <= cs.getParameterMetaData().getParameterCount(); i++) {
    try {
        // because cs.getParameterMetaData().getParameterType( i ) is not supported by ojdbc, we let this throw SQLException
        Object o = cs.getObject(i);
        if( o instanceof ResultSet ) {
            rs = (ResultSet)o;
        }
    } catch( SQLException sqle ) {
        continue;
    }
}

它没有准确回答我的问题,但它部分解决了我的问题。