title: Getting Exception java.sql.SQLException: ORA-03115: unsupported network datatype or representation
body: <p>Java procedure:</p>
  
  <pre><code>CREATE OR REPLACE PACKAGE pkg_name is
  
      TYPE REF_CURSOR IS REF CURSOR; 
  
      PROCEDURE p_fetch_unprocessed_repair (
                  IN_OUT_BULK_ID      IN OUT  NUMBER,
                  IN_PUBLISH_STATUS   IN  CHAR,
                  out_from_date       OUT VARCHAR2,
                  out_to_date         OUT VARCHAR2,
                  out_repair_info     OUT REF_CURSOR,
                  out_error_cd        OUT VARCHAR2
          ) ;
  
      END;
  </code></pre>
  
  <p>Java code block to invoke stored procedure.</p>
  
  <pre><code>try {
      CallableStatement callStatement= conn.prepareCall("{call PKG_NAME.p_fetch_unprocessed_repair(?,?,?,?,?,?)}");
      conn.setAutoCommit(false);
      callStatement.setFetchDirection(ResultSet.FETCH_FORWARD);
      callStatement.setFetchSize(props.getDbBatchSize());
      callStatement.registerOutParameter("IN_OUT_BULK_ID", Types.NUMERIC);
      if(null != bulkID &amp;&amp; StringUtils.isNotBlank(bulkStatus)){
          callStatement.setInt("IN_OUT_BULK_ID", bulkID);
      }
      callStatement.setString("IN_PUBLISH_STATUS", bulkStatus);
      callStatement.registerOutParameter("OUT_FROM_DATE", Types.VARCHAR);
      callStatement.registerOutParameter("OUT_TO_DATE", Types.VARCHAR);
      callStatement.registerOutParameter("OUT_REPAIR_INFO", Types.REF);
      callStatement.registerOutParameter("OUT_ERROR_CD", Types.VARCHAR);
      Boolean hadResults = callStatement.execute();
  } catch(exception e ) {
  
  }
  </code></pre>