Thread: 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 >