Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen algunos de los motivos por los que SQL Server Migration Assistant (SSMA) para Oracle no convierte procedimientos con referencia a la función de la NEXTVAL
secuencia.
Fondo
Es SEQUENCE
un objeto de base de datos independiente de Oracle, que crea automáticamente enteros únicos normalmente para los valores clave o externos principales. NEXTVAL
Se usa para tener acceso al siguiente valor de la secuencia especificada.
Al convertir SEQUENCE
objetos, SSMA puede usar dos técnicas, es decir , Secuencia a secuencia y Secuencia a identidad. Cuando SSMA se convierte en secuencia, crea un objeto correspondiente SEQUENCE
en el esquema de SQL Server para cada secuencia de Oracle. En el modo Secuencia a identidad , SSMA no crea ningún SEQUENCE
objeto en SQL Server, por lo que llama a NEXTVAL
para la secuencia de Oracle produce un mensaje de error.
Ejemplo
Considere el ejemplo siguiente:
CREATE OR REPLACE PROCEDURE proc1
AS
t1 NUMBER;
BEGIN
SELECT customers_seq.NEXTVAL INTO t1 FROM DUAL;
END;
Aquí tenemos un procedimiento almacenado que intenta recuperar el siguiente valor para la secuencia customers_seq
. Si el modo Secuencia a identidad se usa en SSMA, se genera el siguiente mensaje de error:
O2SS0221: no se admite la llamada a la secuencia de identidadES NEXTVAL
Posibles soluciones
Para resolver este error, vuelva a escribir el código PL/SQL para eliminar el acceso a NEXTVAL
o cambie la configuración del proyecto SSMA para generar SEQUENCE
objetos en SQL Server, en lugar de columnas de identidad. Para hacer lo siguiente:
- Seleccione el menú Herramientas y seleccione Proyecto Configuración.
- A continuación, seleccione la pestaña General .
- Ahora, en Grupo de conversión de secuencia, establezca Convertir generador de secuencia en Uso del generador de secuencias de SQL Server.
- Aplique esta configuración y seleccione Aceptar.
Mensajes de conversión relacionados
- O2SS0188: secuencia no encontrada en los metadatos de origen (error)
- O2SS0214: La columna tiene una secuencia enlazada, pero la secuencia no se encontró en los metadatos de origen
- O2SS0217: no se admite la llamada a la secuencia de identidades CURRVAL (error)