@Override
public SqlParameter createDefaultOutParameter(String parameterName, CallParameterMetaData meta) {
if (meta.getSqlType() == Types.OTHER) {
if (isRefCursorType(meta)){
return new SqlOutParameter(parameterName, getRefCursorSqlType(), new OracleSQLResultsProvider());
}else if (isPLSQLRecordType(meta)){
throw new UnsupportedOperationException("A PL/SQL record is not currently supported as an output parameter.");
}else if (isArrayType(meta)){
return new SqlOutParameter(parameterName, getArrayType(), getArgumentType(meta));
}else if (isFloatType(meta)){
return new SqlOutParameter(parameterName, OracleTypes.FLOAT);
}else{
return new SqlOutParameter(parameterName, getStructType(), meta.getTypeName());
}
}else{
return super.createDefaultOutParameter(parameterName, meta);
}
}