大家好,我在做jdbc封装时出现的一个问题:
java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示法 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.v8Odscrarr.receive(v8Odscrarr.java:205)
at oracle.jdbc.ttc7.TTC7Protocol.describe(TTC7Protocol.java:754)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:860)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:572)
at DatabaseOper.ExecuteNonQuery(DatabaseOper.java:92)
at DatabaseOper.main(DatabaseOper.java:169)
谢谢

解决方案 »

  1.   

    今天我发现这个问题会在一个特定的情况下会出现。
    使用一个PrepareStatement去执行另外的语句时会出现。
    private static void testPreparedStament(Connection conn) {
    PreparedStatement pst;
    ResultSet rs;
    try {
    pst = conn.prepareStatement(
    "select t.*, t.rowid from t_dev_sample_param t where devid=?");
    rs = pst.executeQuery("select * from dual");
    if (rs != null && rs.next()){
    System.out.println("execute query in prepare statement success.");
    }
    } catch (SQLException e) {
    System.out.println("failed to execute query in prepare statement.");
    e.printStackTrace();
    }
    }
    如下情况一定会出现该异常:
    failed to execute query in prepare statement.
    java.sql.SQLException: ORA-03115: unsupported network datatype or representation