Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

passing array of objects from oracle stored procedure to java ...Error

 
Raj Sikka
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi ,
i have written a oracle procedure and a java file.
my oracle procedure returns an array to java.
but while collecting the array in java it says
"java.sql.SQLException: Fail to construct descriptor: Unable to resolve type: "SVM_220.t_id"
"
please have a look at the code below .
please help me out in solving this problem.
Thanks and Regards,
Srikanth
------------------------------------------------
Following is the oracle package.
------------------------------------------------
CREATE OR REPLACE PACKAGE SimplePackage AS
TYPE STLISTOBJ as object(ID NUMBER(10));
TYPE t_id is TABLE of STLISTOBJ;
PROCEDURE proc1
(
in_nu IN NUMBER,
o_id OUT t_id
);
END SimplePackage;
/
CREATE OR REPLACE PACKAGE BODY SimplePackage AS
PROCEDURE proc1 (in_nu IN NUMBER,o_id OUT t_id) AS
BEGIN
o_id(1):= STLISTOBJ(200);
o_id(2) := STLISTOBJ(201);
END proc1;
END SimplePackage;
/
-----------------------------------------------
Here is my java program ..
------------------------------------------------
import java.sql.*;
import java.util.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;
import oracle.sql.ArrayDescriptor.*;
import java.sql.SQLException;
public class getArray extends MultipleResultsets
{
public static void main(String args[]) {
try{
Vector errorObjectVector = new Vector();
System.out.println("setting up connection");
Connection connection = setupConnection();
CallableStatement myCallable =
connection.prepareCall("{CALL SimplePackage.proc1(?,?)}");
myCallable.setInt(1,1);
myCallable.registerOutParameter(2,OracleTypes.ARRAY,"t_id");
myCallable.execute();
ARRAY ObjectArray = (oracle.sql.ARRAY)myCallable.getObject(1);
ResultSet myResultSet = ObjectArray.getResultSet();
while (myResultSet.next())
{
oracle.sql.STRUCT eachObject = (oracle.sql.STRUCT)myResultSet.getObject(2);
errorObjectVector.addElement(eachObject);
}
int vectorSize = errorObjectVector.size();
System.out.println("Size of Vector:"+vectorSize);
connection.close();
}
catch (SQLException e) {
System.out.println("SQL EXE:"+e);
}
catch (Exception ex) {
System.out.println("EXE:"+ex);
}
}
}
-------------------------------------------------
Error getting while execution of my java file.
java.sql.SQLException: Fail to construct descriptor: Unable to resolve type: "SVM_220.t_id"
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic