#oracle #oracle-sqldeveloper #sequence #soa #bpel
#Oracle #oracle-разработчик sqld #последовательность #СОА #bpel
Вопрос:
Я работаю над процессом SOA BPEL, в котором он считывает данные из XML-файла и загружает их в таблицы базы данных. Однако последовательность таблиц, которую мне нужно вызвать в моем файле преобразования, не отображается в таблице последовательностей, но ее можно запросить (см. Ниже запрос). Из-за этого он возвращает ошибку, при которой файл преобразования не работает, поскольку он обрабатывает несуществующие последовательности. Мне нужно вызвать эти последовательности, чтобы я мог генерировать значения последовательности для идентификаторов таблиц.
SELECT XXTG_SAMPLE_HEADER_S.nextval FROM DUAL; SELECT XXTG_SAMPLE_LINES_S.nextval FROM DUAL;
Вот единственная последовательность, отображаемая в папке:
Здесь я называю их в своем файле преобразования:
lt;tns:repairIdgt; lt;xsl:value-of select="oraext:sequence-next-val ('XXTG_SAMPLE_HEADER_S', 'jdbc/timexappsDataSource')"/gt; lt;/tns:repairIdgt; lt;tns:repairLineIdgt; lt;xsl:value-of select="oraext:sequence-next-val ('XXTG_SAMPLE_LINES_S', 'jdbc/timexappsDataSource')"/gt; lt;/tns:repairLineIdgt;
Ответ №1:
Существуют только простые объяснения ошибки ORA-02289: sequence does not exist
, когда вы можете выполнить специальный запрос к ней.
Давайте перечислим их
- последовательность существует, но в другой базе данных, к которой подключен ваш процесс.
- последовательность существует, но в другой схеме, чем та, которую использует ваш процесс для подключения.
Решение первого случая очевидно.
В последнем случае
- проверьте схему последовательности
select SEQUENCE_OWNER from all_sequences where sequence_name = 'XXTG_SAMPLE_HEADER_S';
- проверьте, к какому пользователю подключается ваш процесс
- предоставьте ВЫБОР в последовательности пользователю подключения
соединитесь с пользователем, создавшим последовательность, и
grant select on seq_user.XXTG_SAMPLE_HEADER_S to connect_user;
Комментарии:
1. Уже предоставлено разрешение, но файл преобразования по-прежнему не видит эти последовательности. Есть ли способ, чтобы эти последовательности отображались в таблице последовательностей? К сожалению, файл преобразования видит только эти 3 последовательности на скриншоте.
2. Забудьте файл преобразования , который вы должны понять, который
user
подключается к базе данных. Проверьте конфигурацию и найдите пользователя , *пароль . Этоuser
должно получить грант.