Suggestion, can we use "Convert.ToInt32(columnData[i])" instead of "(int)columnData[i]"

and the code can be simplified from
int[] intParam = new int[columnData.Length];
for (int i = 0; i < columnData.Length; i++)
{
intParam[i] = (int)columnData[i];
}
param = new OracleParameter(prop.name(true), OracleDbType.Int32);
param.Value = intParam;
to something like
int[] intParam = columnData.Select(x => Convert.ToInt32(x)).ToArray();
param = new OracleParameter(prop.GetName(true), OracleDbType.Int32)
{
Value = intParam
};