From: | "Carl E(dot) McMillin" <carlymac(at)earthlink(dot)net> |
---|---|
To: | "'Sumita Biswas'" <sbiswas(at)cisco(dot)com>, <pgsql-general(at)postgresql(dot)org> |
Cc: | "'Kris Jurka'" <books(at)ejurka(dot)com>, "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "'Richard Huxton'" <dev(at)archonet(dot)com> |
Subject: | Re: Function with RETURN TYPE RECORD Called From JAVA |
Date: | 2004-05-21 18:30:55 |
Message-ID: | 000401c43f61$c565b090$6600a8c0@DEVSONY |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I'm fairly sure that postgres does not support "out" parameters:
objCallStmt.registerOutParameter(1, 12);
Isn't allowed.
Since you only have one value coming out of the function, you could use
regular Statement or PreparedStatement client-side and rewrite your
server-side function so it returns a value thru RETURNS clause. I'm making
assumption that you are using PL/pgsql (only language I'm familiar with).
The second is that you probably want to call the executeQuery method on the
Statement/PreparedStatement and walk through the result-set (per jdocs) it
returns.
Carl <|};-)>
-----Original Message-----
From: pgsql-general-owner(at)postgresql(dot)org
[mailto:pgsql-general-owner(at)postgresql(dot)org] On Behalf Of Sumita Biswas
Sent: Sunday, May 16, 2004 7:10 PM
To: pgsql-general(at)postgresql(dot)org
Cc: 'Kris Jurka'; 'Tom Lane'; 'Richard Huxton'
Subject: [GENERAL] Function with RETURN TYPE RECORD Called From JAVA
Hi All,
I have a Function that returns a variable of Type RECORD.
PFA the .sql file in which the Function is written.
When I execute this Function from JAVA and try to get the Return Variable in
a ResultSet object I get the following Error:
Exception in thread "main" java.lang.ClassCastException
at com.cisco.ccm.car.general.Test.testStoredProc(Test.java:119)
Here is the JAVA Code that I am using:
---------------------------------------------------------------
CARConnector objCARConn = new CARConnector();
CallableStatement objCallStmt = null;
objCallStmt = objCARConn.prepareCall("{ ? = call
Proc_ConferenceSummary(?,?,?,?,?) }");
objCallStmt.registerOutParameter(1, 12);
// '12/1/2003','1/23/2004',1,1,0,5001
//'3/5/2004','3/5/2004',1,1,5001
objCallStmt.setString(2,"3/5/2004");
objCallStmt.setString(3,"5/5/2004");
//objCallStmt.setString(3,"3/5/2004");
objCallStmt.setInt(4,1);
objCallStmt.setInt(5,1);
objCallStmt.setInt(6,5001);
objCallStmt.execute();
ResultSet rs = (ResultSet)objCallStmt.getObject(1);//THIS IS WHERE I
GET THE CLASSCASTEXCEPTION
---------------------------------------------------------------
Please let me know in case I am doing something wrong, or there is a
different way of doing things.
Regards,
Sumita
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
From | Date | Subject | |
---|---|---|---|
Next Message | Vivek Khera | 2004-05-21 19:02:20 | extreme memory use when loading in a lot of data |
Previous Message | Tom Lane | 2004-05-21 17:38:12 | Re: reading vacuum verbosity |