 <p>You are misunderstanding <code>in</code> and <code>out</code> parameters.</p> <p>This:</p> <pre><code>CallableStatement cStmt = dbConnection.prepareCall(sql); cStmt.registerOutParameter(1, Types.DECIMAL); cStmt.execute(); </code></pre> <p>Is declaring that your ratio parameter is an output from the procedure, but it's not.</p> <p>You should be doing something like:</p> <pre><code>CallableStatement cStmt = dbConnection.prepareCall(sql); cStmt.setObject(1, theRatio, Types.DECIMAL); cStmt.execute(); </code></pre>