Bug #10310 | CallableStatement doesn't support calling functions | ||
---|---|---|---|
Submitted: | 2 May 2005 11:45 | Modified: | 6 May 2005 21:09 |
Reporter: | Guy Harrison | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / J | Severity: | S3 (Non-critical) |
Version: | 3.1.7 | OS: | Windows (Windows XP SP2) |
Assigned to: | Mark Matthews | CPU Architecture: | Any |
[2 May 2005 11:45]
Guy Harrison
[6 May 2005 21:09]
Mark Matthews
This is fixed for 3.1.9. You should be able to checkout a nightly snapshot build after 00:00 GMT on May 7th from http://downloads.mysql.com/snapshots.php if you need to test before the official release. Thanks for your bug report. -Mark
[24 Oct 2007 18:03]
Daniel Bramblett
Hi, I'm still seeing this bug appear for MySQL version 5.0.27 with Connector/J version 5.0.5 on Windows XP Pro. Specifically the function I'm calling returns an INT UNSIGNED type and takes as it's one input an INT UNSIGNED type. I'm able to work around using a prepared statement but it's annoying when the callable statement should be working. The error is a number format exception of which the partial stack trace is given below. On first pass it appears the (xx) size setting of the output parameter is causing the problem. The value I'm passing to the function is 4. -Daniel SEVERE: SessionID = 1193241935500. manipulateDecisionTree. Exception! For input string: "10) companyId = 4 java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) java.lang.Integer.parseInt(Integer.java:456) java.lang.Integer.<init>(Integer.java:620) com.mysql.jdbc.DatabaseMetaData$TypeDescriptor.<init>(DatabaseMetaData.java:259) com.mysql.jdbc.DatabaseMetaData.getCallStmtParameterTypes(DatabaseMetaData.java:1657) com.mysql.jdbc.DatabaseMetaData.getProcedureColumns(DatabaseMetaData.java:3983) com.mysql.jdbc.CallableStatement.determineParameterTypes(CallableStatement.java:702) com.mysql.jdbc.CallableStatement.<init>(CallableStatement.java:513) com.mysql.jdbc.Connection.parseCallableStatement(Connection.java:4520) com.mysql.jdbc.Connection.prepareCall(Connection.java:4594) com.mysql.jdbc.Connection.prepareCall(Connection.java:4568) inf.decisionTree.managers.DecisionTreeManager.dt_getNextVersion(DecisionTreeManager.java:459)
[11 Jan 2008 18:13]
Tushar Kapila
when will this be fixed ? cannot call any stored procedure from java so now we need two database calls ... like for create PROCEDURE insert_upc ( IN pcode VARCHAR(25)) begin DECLARE cnt int; /* variables */ select count(*) into cnt from upc where code = pcode; if cnt = 0 then insert into upc values (1,pcode); END IF; end //
[5 Nov 2008 11:00]
Tonci Grgin
Guys, it is fixed loong ago, please see regression test suite, CallableStatementRegressionTest.java for example.