@Override
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
checkOpen();
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_2);
if (holder.isPoolPreparedStatements()) {
PoolableCallableStatement poolableStatement = (PoolableCallableStatement) holder.getStatementPool().get(key);
if (poolableStatement != null) {
poolableStatement.setPoolableConnection(this);