У нас есть набор автоматических тестов для базы данных Oracle, которые мы запускаем на сервере CI с помощью OracleXE. В некоторых тестах используется тип AQ$_JMS_TEXT_MESSAGE, например:
msg SYS.AQ$_JMS_TEXT_MESSAGE;
BEGIN
msg := SYS.AQ$_JMS_TEXT_MESSAGE.construct;
msg.set_text(pMessage);
В прошлом мы использовали OracleXE 10g, но я пытаюсь перейти на XE 11g, чтобы соответствовать обычным серверам Oracle, на которых работает эта база данных. К сожалению, я не могу включить эти типы в OracleXE 11g. Я получаю следующие ошибки при попытке скомпилировать эти пакеты с его помощью:
1797/5 PL/SQL: Statement ignored
1797/37 PLS-00302: component 'CONSTRUCT' must be declared
1798/5 PL/SQL: Statement ignored
1798/9 PLS-00302: component 'SET_TEXT' must be declared
1799/5 PL/SQL: Statement ignored
OracleXE также не устанавливал эти типы по умолчанию в 10g, что мы исправили, выполнив этот скрипт, найденный при установке:
RDBMS\ADMIN\prvtaqal.plb
Однако даже после запуска в OracleXE 11g типы по-прежнему не могут быть разрешены. Я также искал содержимое других файлов в том же месте, связанных с JMS, и нашел эти два:
RDBMS\ADMIN\dbmsaqad.sql
RDBMS\ADMIN\prvtaqji.plb
Их установка также не дала результата.
Кто-нибудь смог использовать тип AQ$_JMS_TEXT_MESSAGE в OracleXE 11g и знает, как это обойти? Или возможность обойти это в XE10g была дырой, которую они сейчас заткнули?