Обсуждение: passing parameters to function

Поиск
Список
Период
Сортировка

passing parameters to function

От
"Srivats"
Дата:
 
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
 
 
 
 
 

Re: passing parameters to function

От
Dave Cramer
Дата:
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
 
 
 
 
 


Re: passing parameters to function

От
"Srivats"
Дата:
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 -----
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
 
 
 
 
 


Re: passing parameters to function

От
Achilleus Mantzios
Дата:
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