I have found the problem!
SQL server does not care in what order the parameters are passed as long as the names match. Oracle it seems, does.
I changed the order in which they are called to this:
_db.AddInParameter(DbCommand, "p_objectName", DbType.String, ObjectName)
_db.AddOutParameter(DbCommand, "p_PrimaryKey", DbType.Int32, 8)
If pbIgnoreSiteIndex Then
_db.AddInParameter(DbCommand, "useSitePrefix", DbType.String, "Y")
Else
_db.AddInParameter(DbCommand, "useSitePrefix", DbType.String, "N")
End If
_db.ExecuteNonQuery(DbCommand)
And it now works without error