Conversión de esquemas de Oracle (OracleToSQL)

Después de conectarse a Oracle, conectado a SQL Server y establecer opciones de asignación de proyectos y datos, puede convertir objetos de base de datos de Oracle en objetos de base de datos de SQL Server.

El proceso de conversión

La conversión de objetos de bases de datos toma las definiciones de los objetos de Oracle, realiza la conversión en objetos de SQL Server similares y, a continuación, carga esta información en los metadatos de SSMA. No carga la información en la instancia de SQL Server. A continuación, puede ver los objetos y sus propiedades mediante el Explorador de metadatos de SQL Server.

Durante la conversión, SSMA imprime los mensajes de salida en el panel de salida y los mensajes de error en el panel Lista de errores. Use la información de salida y de errores para determinar si tiene que modificar las bases de datos de Oracle o el proceso de conversión para obtener los resultados de conversión deseados.

Configuración de las opciones de conversión

Antes de convertir objetos, revise las opciones de conversión del proyecto en el cuadro de diálogo Configuración del proyecto. Con este cuadro de diálogo, puede establecer cómo SSMA convierte las funciones y las variables globales. Para obtener más información, consulte Configuración del proyecto (conversión) (OracleToSQL).

Resultados de la conversión

En la tabla siguiente se muestran los objetos Oracle convertidos y los objetos de SQL Server resultantes:

Objetos de Oracle Objetos de SQL Server resultantes
Functions Si la función se puede convertir directamente a Transact-SQL, SSMA crea una función.

En algunos casos, la función se debe convertir en un procedimiento almacenado. En este caso, SSMA crea un procedimiento almacenado y una función que llama al procedimiento almacenado.
Procedimientos Si el procedimiento se puede convertir directamente a Transact-SQL, SSMA crea un procedimiento almacenado.

En algunos casos, se debe llamar a un procedimiento almacenado en una transacción autónoma. En este caso, SSMA crea dos procedimientos almacenados: uno que implementa el procedimiento y otro que se utiliza para llamar al procedimiento almacenado de implementación.
Paquetes SSMA crea un conjunto de procedimientos almacenados y funciones que se unifican mediante nombres de objeto similares.
Secuencias SSMA crea objetos de secuencia (SQL Server 2012 o SQL Server 2014) o emula secuencias de Oracle.
Tablas con objetos dependientes como índices y desencadenadores SSMA crea tablas con objetos dependientes.
Vista con objetos dependientes, como desencadenadores SSMA crea vistas con objetos dependientes.
Vistas materializadas SSMA crea vistas indexadas en SQL Server con algunas excepciones. Se producirá un error en la conversión si la vista materializada incluye una o varias de las construcciones siguientes:

Función definida por el usuario

Campo, función o expresión no determinista en las cláusulas SELECT, WHERE o GROUP BY

Uso de la columna Float en las cláusulas SELECT*, WHERE o GROUP BY (caso especial del problema anterior)

Tipo de datos personalizado (incluidas las tablas anidadas)

COUNT (<campo> distinto)

FETCH

Combinaciones externas (LEFT, RIGHT o FULL)

Subconsulta, otra vista

OVER, RANK, LEAD, LOG

MIN, MAX

UNION, MINUS, INTERSECT

HAVING
Desencadenador SSMA crea desencadenadores basados en las siguientes reglas:

Los desencadenadores BEFORE se convierten en desencadenadores INSTEAD OF.

Los desencadenadores AFTER se convierten en desencadenadores AFTER.

Los desencadenadores INSTEAD OF se convierten en desencadenadores INSTEAD OF. Varios desencadenadores INSTEAD OF definidos en la misma operación se combinan en un solo desencadenador.

Los desencadenadores de nivel de fila se emulan mediante cursores.

Los desencadenadores compuestos se convierten en desencadenadores INSTEAD OF. Varios desencadenadores compuestos se combinan en un solo desencadenador

Los desencadenadores en cascada se convierten en varios desencadenadores individuales.
Sinónimos Se crean sinónimos para los siguientes tipos de objeto:

Tablas y tablas de objetos

Vistas y vistas de objetos

Procedimientos almacenados

Functions

Los sinónimos de los siguientes objetos se resuelven y se reemplazan por referencias a objetos directos:

Secuencias

Paquetes

Objetos de esquema de clase Java

Tipos de objetos definidos por el usuario

Los sinónimos de otro sinónimo no se pueden migrar y se marcarán como errores.

No se crean sinónimos para vistas materializadas.
Tipos definidos por el usuario SSMA no proporciona compatibilidad para la conversión de tipos definidos por el usuario. Los tipos definidos por el usuario, incluido su uso en programas PL/SQL, se marcan con errores de conversión especiales guiados por las siguientes reglas:

La columna de tabla de un tipo definido por el usuario se convierte en VARCHAR(8000).

El argumento del tipo definido por el usuario para un procedimiento almacenado o una función se convierte en VARCHAR(8000).

La variable del tipo definido por el usuario del bloque PL/SQL se convierte en VARCHAR(8000).

La tabla de objetos se convierte en una tabla estándar.

La vista de objetos se convierte en una vista estándar.

Conversión de objetos de Oracle Database

Para convertir objetos de base de datos de Oracle, seleccione primero los objetos que desea convertir y, a continuación, haga que SSMA realice la conversión. Para ver los mensajes de salida durante la conversión, en el menú Ver, seleccione Salida.

Para convertir objetos de Oracle a la sintaxis de SQL Server

  1. En el Explorador de metadatos de Oracle, expanda el servidor de Oracle y, a continuación, expanda Esquemas.

  2. Seleccione los objetos que se van a convertir:

    • Para convertir todos los esquemas, active la casilla situada junto a Esquemas.

    • Para convertir u omitir una base de datos, active la casilla situada junto al nombre del esquema.

    • Para convertir u omitir una categoría de objetos, expanda un esquema y, a continuación, active o desactive la casilla situada junto a la categoría.

    • Para convertir u omitir objetos individuales, expanda la carpeta category y, a continuación, active o desactive la casilla situada junto al objeto.

  3. Para convertir todos los objetos seleccionados, haga clic con el botón derecho en Esquemas y seleccione Convertir esquema.

    También puede convertir objetos individuales o categorías de objetos haciendo clic con el botón derecho en el objeto o su carpeta primaria y seleccionando Convertir esquema.

Visualización de problemas de conversión

Es posible que algunos objetos de Oracle no se conviertan. Para determinar las tasas de éxito de conversión, consulte el informe de conversión de resumen.

Para ver un informe de resumen

  1. En el Explorador de metadatos de Oracle, seleccione Esquemas.

  2. En el panel derecho, seleccione la pestaña Informar.

    En este informe se muestra el informe de evaluación de resumen de todos los objetos de base de datos que se han evaluado o convertido. También puede ver un informe de resumen para objetos individuales:

    • Para ver el informe de un esquema individual, seleccione el esquema en el Explorador de metadatos de Oracle.

    • Para ver el informe de un objeto individual, seleccione el objeto en el Explorador de metadatos de Oracle. Los objetos que tienen problemas de conversión tienen un icono de error rojo.

En el caso de los objetos con errores de conversión, puede ver la sintaxis que produjo el error de conversión.

Para ver problemas de conversión individuales

  1. En el Explorador de metadatos de Oracle, expanda Esquemas.

  2. Expanda el esquema que muestra un icono de error rojo.

  3. En el esquema, expanda una carpeta que tenga un icono de error rojo.

  4. Seleccione el objeto que tiene un icono de error rojo.

  5. En el panel derecho, haga clic en la pestaña Informar.

  6. En la parte superior de la pestaña Informe se encuentra una lista desplegable. Si la lista muestra Estadísticas, cambie la selección a Origen.

    SSMA mostrará el código fuente y varios botones inmediatamente encima del código.

  7. Haga clic en el botón Siguiente problema. Se trata de un icono de error rojo con una flecha que apunta a la derecha.

    SSMA resaltará el primer código fuente problemático que encuentra en el objeto actual.

Para cada elemento que no se pudo convertir, debe determinar lo que desea hacer con ese objeto:

  • Puede modificar el código fuente de los procedimientos de la pestaña SQL.

  • Puede modificar el objeto de la base de datos de Oracle para quitar o revisar el código problemático. Para cargar el código actualizado en SSMA, tendrá que actualizar los metadatos. Para obtener más información, consulte Conexión a la base de datos Oracle (OracleToSQL).

  • Puede excluir el objeto de la migración. En el Explorador de metadatos de SQL Server y el Explorador de metadatos de Oracle, desactive la casilla situada junto al elemento antes de cargar los objetos en SQL Server y migrar datos de Oracle.

Paso siguiente

El siguiente paso del proceso de migración es Cargar los objetos convertidos en SQL Server.

Consulte también

Migración de bases de datos de Oracle a SQL Server (OracleToSQL)