Oracle APEX - пропущенный столбец в запросе при изменении языка - PullRequest
1 голос
/ 08 июля 2019

Приложение, над которым я работаю, может работать на английском или французском языке.Существует интерактивный отчет, который отлично работает на английском языке, но когда приложение запускается на французском языке, возникает ошибка ORA, сообщающая, что один из столбцов не является допустимым идентификатором.Когда я пошел проверять журналы отладки, результирующий SQL при запуске на французском языке выглядит как более старая версия по сравнению с результирующим SQL при запуске на английском языке.

--Original Source
   SELECT ...
      CASE
         WHEN (dependant_pkg.get_dependant_id (ee.memb_id, '0') IS NULL OR ee.re_enrolment_dt >= TRUNC (SYSDATE))
         and  (( SEC_USER_EXTERNAL_PKG.get_info_vc(:g_user_id,'entity_type_code') = 'AC' ) or not (:g_user_type = 'GR' and :g_brand_code = 'HB' ))
         THEN ... --codes
      END link,
      ee.empl_contact_email
  FROM empl_enrol ee, company c
 WHERE ...

--FRENCH
   SELECT ...
      CASE
         WHEN (dependant_pkg.get_dependant_id (ee.memb_id, '0') IS NULL OR ee.re_enrolment_dt >= TRUNC (SYSDATE))
         and not (:g_user_type = 'GR' and :g_brand_code = 'HB') --! missing/different condiition
         THEN ... --codes
      END link
         --missing column
      FROM empl_enrol ee, company c
      WHERE ...

--ENGLISH
   SELECT ...
      CASE
         WHEN (dependant_pkg.get_dependant_id (ee.memb_id, '0') IS NULL OR ee.re_enrolment_dt >= TRUNC (SYSDATE))
         and  (( SEC_USER_EXTERNAL_PKG.get_info_vc(:g_user_id,'entity_type_code') = 'AC' ) or not (:g_user_type = 'GR' and :g_brand_code = 'HB' ))
         THEN ... --codes
      END link,
      ee.empl_contact_email
      FROM empl_enrol ee, company c
      WHERE ...

1 Ответ

0 голосов
/ 09 июля 2019

Реально опубликовать ответ, чтобы вы могли пометить это как решенное.

Apex создает дубликаты приложений для разных языков, поэтому переводы в основном выполняются после завершения приложения.Так что вы можете просто изменить приложение по умолчанию, но если вы переключите язык на французский, он вернется к более старой версии.

Вам нужно будет переиздать переведенное приложение.

...