[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Getting Jboss to accept ref cursor or recognize it

rsood72 do-not-reply at jboss.com
Fri Sep 29 15:43:01 EDT 2006


In our company we currently use Oracle8i and currently our JBoss Server is mapped to Oracle 8i (maybe going forward we will use Oracle10g). Now for a new report that I am working on, my db team has written a stored procedure, the signature of which is some what like this
CREATE OR REPLACE PACKAGE hrdlchg_package as
Type cur_type is ref cursor;
  |   procedure HRDLCHG_RPT(
  |      I_FROMDTDATE       IN ROOMCLASSHURDLES.DTDATE%TYPE,
  |      I_TODTDATE         IN ROOMCLASSHURDLES.DTDATE%TYPE,
  |      I_LROOMCLASSID     IN VARCHAR2,
  |      I_NLOS             IN VARCHAR2,
  |      I_DTMRHDATESTART   IN ROOMCLASSHURDLES.DTMRHDATETIME%TYPE,
  |      I_DTMRHDATEEND     IN ROOMCLASSHURDLES.DTMRHDATETIME%TYPE,
  |      I_ORDERBY          IN VARCHAR2,
  |      list_cur in out cur_type );
  |   procedure HISTORY_RPT(
  |      I_STARTDATE        IN  DATE,
  |      I_ENDDATE          IN  DATE,
  |      I_RHDATESTART      IN  DATE,
  |      I_NLOS             IN  VARCHAR2,
  |      I_LROOMCLASSID     IN  VARCHAR2,
  |      I_ORDERBY          IN  VARCHAR2,
  |      list_cur in out cur_type);
  |   end HRDLCHG_PACKAGE;
The thing to note here is the declaration of cur_type as ref cursor

Now it so happens that jBoss does not have a way to map the jdbc types Types.Other or Types.Ref to this sql type. 
In my standardjbosscmp-jdbc.xml file I tried to map java.sql.ResultSet to Types.Ref and than to ref cursor but that did not work
Something like this
<mapping>
  |             <java-type>java.sql.ResultSet</java-type>
  |             <jdbc-type>REF</jdbc-type>
  |             <sql-type>ref cursor</sql-type>
  |             
  |          </mapping>So would anyone know how to get Jboss to recognize refcursor. 
In the java code I was making call like this

if( ServerUtil.isOracleDB() ) {
  | 		cStmt = GetConnection.getPreparedCall( "{call hrdlchg_package.HISTORY_RPT(?,?,?,?,?,?,?)}");
  | 		//register the OUT parameter of pl/sql function as a OracleTypes.Cursor datatype
  | 		
  | 		cStmt.setTimestamp(1, this.arrivalFrom);
  | 		cStmt.setTimestamp(2, this.arrivalTo);
  | 		cStmt.setTimestamp(3, this.baselineDate);
  | 		cStmt.setString(4, this.LOS);
  | 		cStmt.setString(5, this.roomClasses);
  | 		cStmt.setString(6, this.colToOrderBy);
  | 		
  | 		//cStmt.setNull(1, Types.REF);
  | 		cStmt.registerOutParameter(7, Types.REF);
  | 		cStmt.executeUpdate();
  | 		rs = (ResultSet)cStmt.getObject(1);let me know


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3975203#3975203

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3975203



More information about the jboss-user mailing list