diff --git a/reportbuilder/classes/local/entities/course.php b/reportbuilder/classes/local/entities/course.php index aabadc09362..f9a533742a4 100644 --- a/reportbuilder/classes/local/entities/course.php +++ b/reportbuilder/classes/local/entities/course.php @@ -318,11 +318,9 @@ class course extends base { $fields = $this->get_course_fields(); foreach ($fields as $field => $name) { - // Filtering isn't supported for LONGTEXT fields on Oracle. - if ($this->get_course_field_type($field) === column::TYPE_LONGTEXT && - $DB->get_dbfamily() === 'oracle') { - - continue; + $filterfieldsql = "{$tablealias}.{$field}"; + if ($this->get_course_field_type($field) === column::TYPE_LONGTEXT) { + $filterfieldsql = $DB->sql_cast_to_char($filterfieldsql); } $optionscallback = [static::class, 'get_options_for_' . $field]; @@ -341,7 +339,7 @@ class course extends base { $field, $name, $this->get_entity_name(), - "{$tablealias}.$field" + $filterfieldsql )) ->add_joins($this->get_joins()); diff --git a/reportbuilder/classes/local/entities/user.php b/reportbuilder/classes/local/entities/user.php index 119f099d21f..195f0efb9d8 100644 --- a/reportbuilder/classes/local/entities/user.php +++ b/reportbuilder/classes/local/entities/user.php @@ -483,11 +483,9 @@ class user extends base { // User fields filters. $fields = $this->get_user_fields(); foreach ($fields as $field => $name) { - // Filtering isn't supported for LONGTEXT fields on Oracle. - if ($this->get_user_field_type($field) === column::TYPE_LONGTEXT && - $DB->get_dbfamily() === 'oracle') { - - continue; + $filterfieldsql = "{$tablealias}.{$field}"; + if ($this->get_user_field_type($field) === column::TYPE_LONGTEXT) { + $filterfieldsql = $DB->sql_cast_to_char($filterfieldsql); } $optionscallback = [static::class, 'get_options_for_' . $field]; @@ -506,7 +504,7 @@ class user extends base { $field, $name, $this->get_entity_name(), - $tablealias . '.' . $field + $filterfieldsql )) ->add_joins($this->get_joins());