Обсуждение: jdbc/callable statment error
When executing the following statments from netbeans 4.1 sun app server 8.1
CallableStatement proc = con.prepareCall("{ ? = call test_function ( ? ) }");
proc.registerOutParameter(1, Types.BOOLEAN);
proc.setString(2, "testthis");
proc.execute();
This shows up in my server log.
LOG: statement: select * from test_function ( 'thisTest' ) as result;
ERROR: function test_function("unknown") does not exist
HINT: No function matches the given name and argument types. You may need to add explicit type casts.
And I get an exception from my app server that states "No function" etc, etc...
Now, if I cut and paste that into my psql terminal it appears to work... So I'm really curious as to why it doesn't
workthrough jdbc...
Couple of things: I'm getting my connection through a connection pool on my app server and that appears to be in
workingorder...
Any suggestions?
Gary Lucas
And now that I think of it, I'm useing postgres 7.4
Not sure how relevant that is,
Gary
On Wed, Mar 30, 2005 at 01:16:47AM -0800, fake@dusk.homelinux.org wrote:
> When executing the following statments from netbeans 4.1 sun app server 8.1
>
> CallableStatement proc = con.prepareCall("{ ? = call test_function ( ? ) }");
> proc.registerOutParameter(1, Types.BOOLEAN);
> proc.setString(2, "testthis");
> proc.execute();
>
> This shows up in my server log.
>
> LOG: statement: select * from test_function ( 'thisTest' ) as result;
> ERROR: function test_function("unknown") does not exist
> HINT: No function matches the given name and argument types. You may need to add explicit type casts.
>
>
> And I get an exception from my app server that states "No function" etc, etc...
>
> Now, if I cut and paste that into my psql terminal it appears to work... So I'm really curious as to why it doesn't
workthrough jdbc...
>
> Couple of things: I'm getting my connection through a connection pool on my app server and that appears to be in
workingorder...
>
> Any suggestions?
>
>
> Gary Lucas
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
What do the logs say when you excecute this from psql ?
Dave
fake@dusk.homelinux.org wrote:
>When executing the following statments from netbeans 4.1 sun app server 8.1
>
>CallableStatement proc = con.prepareCall("{ ? = call test_function ( ? ) }");
>proc.registerOutParameter(1, Types.BOOLEAN);
>proc.setString(2, "testthis");
>proc.execute();
>
>This shows up in my server log.
>
>LOG: statement: select * from test_function ( 'thisTest' ) as result;
>ERROR: function test_function("unknown") does not exist
>HINT: No function matches the given name and argument types. You may need to add explicit type casts.
>
>
>And I get an exception from my app server that states "No function" etc, etc...
>
>Now, if I cut and paste that into my psql terminal it appears to work... So I'm really curious as to why it doesn't
workthrough jdbc...
>
>Couple of things: I'm getting my connection through a connection pool on my app server and that appears to be in
workingorder...
>
>Any suggestions?
>
>
>Gary Lucas
>
>---------------------------(end of broadcast)---------------------------
>TIP 8: explain analyze is your friend
>
>
>
>
--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561
After experiencing something similar, I read somewhere
that CallableStatement's shouldn't be used pre-8.0. I
think someone posted on a message board or something.
I changed all my java code to call my functions as
PreparedStatements:
ps = con.prepareStatement("select myFunction(?,?)")
ps.setBoolean(1, true);
ps.setInt(2, 198);
etc.
And it worked fine from there on.
--- fake@dusk.homelinux.org wrote:
> And now that I think of it, I'm useing postgres 7.4
>
> Not sure how relevant that is,
>
> Gary
>
>
> On Wed, Mar 30, 2005 at 01:16:47AM -0800,
> fake@dusk.homelinux.org wrote:
> > When executing the following statments from
> netbeans 4.1 sun app server 8.1
> >
> > CallableStatement proc = con.prepareCall("{ ? =
> call test_function ( ? ) }");
> > proc.registerOutParameter(1, Types.BOOLEAN);
> > proc.setString(2, "testthis");
> > proc.execute();
> >
> > This shows up in my server log.
> >
> > LOG: statement: select * from test_function (
> 'thisTest' ) as result;
> > ERROR: function test_function("unknown") does not
> exist
> > HINT: No function matches the given name and
> argument types. You may need to add explicit type
> casts.
> >
> >
> > And I get an exception from my app server that
> states "No function" etc, etc...
> >
> > Now, if I cut and paste that into my psql
> terminal it appears to work... So I'm really curious
> as to why it doesn't work through jdbc...
> >
> > Couple of things: I'm getting my connection
> through a connection pool on my app server and that
> appears to be in working order...
> >
> > Any suggestions?
> >
> >
> > Gary Lucas
> >
> > ---------------------------(end of
> broadcast)---------------------------
> > TIP 8: explain analyze is your friend
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>