Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматриваются некоторые причины, по которым Помощник по миграции SQL Server (SSMA) для Oracle не преобразует процедуры со ссылкой на функцию последовательностиNEXTVAL
.
Общие сведения
A SEQUENCE
— это независимый объект базы данных в Oracle, который автоматически создает уникальные целые числа, как правило, для первичных и внешних значений. Используется NEXTVAL
для доступа к следующему значению указанной последовательности.
При преобразовании SEQUENCE
объектов SSMA может использовать два метода: " Последовательность в последовательность" и "Последовательность" в удостоверение. При преобразовании SSMA в последовательность создается соответствующий SEQUENCE
объект в схеме SQL Server для каждой последовательности Oracle. В режиме последовательности к удостоверению SSMA не создает SEQUENCE
объекты в SQL Server, поэтому вызовы последовательности Oracle приводят к NEXTVAL
сообщению об ошибке.
Пример
Рассмотрим следующий пример:
CREATE OR REPLACE PROCEDURE proc1
AS
t1 NUMBER;
BEGIN
SELECT customers_seq.NEXTVAL INTO t1 FROM DUAL;
END;
Здесь есть хранимая процедура, которая пытается получить следующее значение для последовательности customers_seq
. Если режим последовательности к удостоверению используется в SSMA, создается следующее сообщение об ошибке:
O2SS0221. Вызов последовательности удостоверений NEXTVAL не поддерживается
Возможные решения
Чтобы устранить эту ошибку, переопределите код PL/SQL, чтобы исключить доступ NEXTVAL
к, или измените параметры проекта SSMA на создание SEQUENCE
объектов в SQL Server вместо столбцов удостоверений. Чтобы сделать это позже, выполните следующие действия:
- Выберите меню "Сервис" и выберите "Проект" Параметры.
- Затем выберите вкладку "Общие ".
- Теперь в группе преобразования последовательности установите генератор последовательностей в использование генератора последовательностей SQL Server.
- Примените эти параметры и нажмите кнопку "ОК".
Связанные сообщения преобразования
- O2SS0188. Последовательность не найдена в исходных метаданных (ошибка)
- O2SS0214. Столбец имеет привязанную последовательность, но последовательность не найдена в исходных метаданных
- O2SS0217. Вызов последовательности удостоверений CURRVAL не поддерживается (ошибка)