• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

got error: Invalid column index

 
emma Yao
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When I tried to call a procedure which returns a cursor (the 5th param, refcursor type in oracle9i), I got an error(java.sql.SQLException: Invalid column index) when the execution went to line 'rs = (ResultSet)st.getObject(1);'. When I tested and execute the same procedure in SQLplus, I could get a result back (returns one record with 3 columns)Any suggestion and help will be greatly appreciated!

--------------------------------------------------
CallableStatement st = null;
ResultSet rs = null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection db_conn = java.sql.DriverManager.getConnection ("");
st = db_conn.prepareCall("BEGIN packName.GETVENDORLIST(?,?,?,?,?); END; ");

st.setString(1,"1603DR");
st.setString(2,"06");
st.setString(3,"4160");
st.setString(4,"LA");
st.registerOutParameter(5,OracleTypes.CURSOR);

st.execute();
System.out.println("success execute");

rs = (ResultSet)st.getObject(1);

while (rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
[ August 03, 2006: Message edited by: Bear Bibeault ]
 
Carl Trusiak
Sheriff
Posts: 3341
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You have registered 5 as the out parameter but, are getting parameter 1 after the call.

Change that to rs = (ResultSet)st.getObject(5);
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic