Thread: passing parameters to function
Hi All,
Suppose I have a store proc which accepts 4 input parameters
and I do a CallableStatement.setObject( 1, "..,,," );
and execute the query .
CallableStatement functionCall = dbCon_.prepareCall("{call test1( ?,?,?,?) }");
functionCall.setObject( "param1","A10001" );
functionCall.setObject( "param2","19830529" );
functionCall.execute();
functionCall.setObject( "param1","A10001" );
functionCall.setObject( "param2","19830529" );
functionCall.execute();
Exception raised
java.sql.SQLException: No value specified for parameter 3
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1253)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1201)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:710)
at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:520)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1253)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1201)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:710)
at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:520)
during runtime. Should i set the other 2 input parameters to null,
even when I dont want to pass these parameters to the SP.
In this statement call test1( ?,?,?,?), should the number of parameters be the number
of parameters which the store procedure accepts or the number of parameters that i want
to pass. How should this be done when my SP accepts 4 parameters and i want to pass
only any two of them
Thks
PS: Looking for an early reply
You would have to set them to NULL
Dave
On 8-Nov-05, at 7:31 AM, Srivats wrote:
Hi All,Suppose I have a store proc which accepts 4 input parametersand I do a CallableStatement.setObject( 1, "..,,," );and execute the query .CallableStatement functionCall = dbCon_.prepareCall("{call test1( ?,?,?,?) }");
functionCall.setObject( "param1","A10001" );
functionCall.setObject( "param2","19830529" );
functionCall.execute();Exception raisedjava.sql.SQLException: No value specified for parameter 3
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1253)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1201)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:710)
at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:520)
during runtime. Should i set the other 2 input parameters to null,even when I dont want to pass these parameters to the SP.In this statement call test1( ?,?,?,?), should the number of parameters be the numberof parameters which the store procedure accepts or the number of parameters that i wantto pass. How should this be done when my SP accepts 4 parameters and i want to passonly any two of themThksPS: Looking for an early reply
Hi All,
Is there anyway i can get the list of parameters which the store proc accepts from the java end after i make the prepareCall.
Thks
----- Original Message -----From: Dave CramerTo: SrivatsSent: Tuesday, November 08, 2005 9:21 PMSubject: Re: [JDBC] passing parameters to functionYou would have to set them to NULLDaveOn 8-Nov-05, at 7:31 AM, Srivats wrote:Hi All,Suppose I have a store proc which accepts 4 input parametersand I do a CallableStatement.setObject( 1, "..,,," );and execute the query .CallableStatement functionCall = dbCon_.prepareCall("{call test1( ?,?,?,?) }");
functionCall.setObject( "param1","A10001" );
functionCall.setObject( "param2","19830529" );
functionCall.execute();Exception raisedjava.sql.SQLException: No value specified for parameter 3
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1253)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1201)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:710)
at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:520)
during runtime. Should i set the other 2 input parameters to null,even when I dont want to pass these parameters to the SP.In this statement call test1( ?,?,?,?), should the number of parameters be the numberof parameters which the store procedure accepts or the number of parameters that i wantto pass. How should this be done when my SP accepts 4 parameters and i want to passonly any two of themThksPS: Looking for an early reply
O Srivats έγραψε στις Nov 9, 2005 : > Hi All, > > Is there anyway i can get the list of parameters which the store proc accepts from the java end after i make the prepareCall. You might want to look at DatabaseMetaData dbmd = con.getMetaData(); ResultSet your_funk_args = dbmd.getProcedureColumns(...); I dont know (or looked) if it is supported by the current 7.4 pgsql jdbc. > > Thks > > ----- Original Message ----- > From: Dave Cramer > To: Srivats > Cc: pgsql-jdbc@postgresql.org > Sent: Tuesday, November 08, 2005 9:21 PM > Subject: Re: [JDBC] passing parameters to function > > > You would have to set them to NULL > > > Dave > > On 8-Nov-05, at 7:31 AM, Srivats wrote: > > > > Hi All, > > Suppose I have a store proc which accepts 4 input parameters > and I do a CallableStatement.setObject( 1, "..,,," ); > and execute the query . > > > CallableStatement functionCall = dbCon_.prepareCall("{call test1( ?,?,?,?) }"); > functionCall.setObject( "param1","A10001" ); > functionCall.setObject( "param2","19830529" ); > functionCall.execute(); > > Exception raised > > java.sql.SQLException: No value specified for parameter 3 > at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1253) > at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1201) > at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:710) > at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:520) > > > during runtime. Should i set the other 2 input parameters to null, > even when I dont want to pass these parameters to the SP. > In this statement call test1( ?,?,?,?), should the number of parameters be the number > of parameters which the store procedure accepts or the number of parameters that i want > to pass. How should this be done when my SP accepts 4 parameters and i want to pass > only any two of them > > Thks > > PS: Looking for an early reply > > > > > > > > > -- -Achilleus