Conversión de esquemas DB2 (DB2ToSQL)
Después de conectarse a DB2, de conectarse a SQL Server y de establecer opciones de asignación de proyectos y datos, puede convertir objetos de base de datos DB2 en objetos de base de datos de SQL Server.
Proceso de conversión
La conversión de objetos de bases de datos toma las definiciones de los objetos de DB2, 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 DB2 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) (DB2ToSQL).
Resultados de la conversión
En la tabla siguiente se muestran los objetos de DB2 convertidos y los objetos de SQL Server resultantes:
Objetos DB2 | Objetos de SQL Server resultantes |
---|---|
Tipo de datos | SSMA asigna todos los tipos excepto los siguientes: CLOB: algunas funciones nativas para trabajar con este tipo no se admiten (por ejemplo, CLOB_EMPTY()) BLOB: algunas funciones nativas para trabajar con este tipo no se admiten (por ejemplo, BLOB_EMPTY()) DBLOB: algunas funciones nativas para trabajar con este tipo no se admiten (por ejemplo, DBLOB_EMPTY()) |
Tipos definidos por el usuario | SSMA asigna lo siguiente definido por el usuario: Tipo distinto Tipo estructurado Tipos de datos PL de SQL - Nota: No se admite el tipo de cursor débil. |
Registros especiales | SSMA solo asigna los registros enumerados a continuación: CURRENT TIMESTAMP CURRENT DATE CURRENT TIME CURRENT TIMEZONE CURRENT USER SESSION_USER y USER SYSTEM_USER CURRENT CLIENT_APPLNAME CURRENT CLIENT_WRKSTNNAME CURRENT LOCK TIMEOUT CURRENT SCHEMA CURRENT SERVER CURRENT ISOLATION Otros registros especiales no se asignan a la semántica de SQL Server. |
CREATE TABLE | SSMA asigna CREATE TABLE con las siguientes excepciones: Tablas de agrupación en clústeres multidimensionales (MDC) Tablas agrupadas por intervalos (RCT) Tablas con particiones Tabla desasociada Cláusula DATA CAPTURE Opción IMPLICITLY HIDDEN Opción VOLATILE |
CREATE VIEW | SSMA asigna CREATE VIEW con "WITH LOCAL CHECK OPTION", pero otras opciones no se asignan a la semántica de SQL Server. |
CREATE INDEX | SSMA asigna CREATE INDEX con las excepciones siguientes: Índice XML Opción BUSINESS_TIME WITHOUT OVERLAPS Cláusula PARTITIONED Opción SPECIFICATION ONLY Opción EXTEND USING Opción MINPCTUSED Opción PAGE SPLIT |
Desencadenadores | SSMA asigna la siguiente semántica del desencadenador: Desencadenadores AFTER / FOR EACH ROW Desencadenadores AFTER / FOR EACH STATEMENT Desencadenadores BEFORE / FOR EACH ROW y INSTEAD OF / FOR EACH ROW |
Secuencias | Se asignan. |
Instrucción SELECT | SSMA asigna SELECT con las siguientes excepciones: Cláusula Data-change-table-reference: asignada parcialmente, pero no se admiten tablas FINAL Cláusula table-reference: asignada parcialmente, pero only-table-reference, outer-table-reference, analyze_table-expression, collection-derived-table, xmltable-expression no se asignan a la semántica de SQL Server. Cláusula period-specification: no asignada. Cláusula continue-handler: no asignada. Cláusula typed-correlation: no asignada. Cláusula concurrent-access-resolution: no asignada. |
Instrucción VALUES | Se asigna. |
Instrucción INSERT | Se asigna. |
Instrucción UPDATE | SSMA asigna UPDATE con las siguientes excepciones: Cláusula table-reference: only-table-reference no se asigna a la semántica de SQL Server. Cláusula period: no asignada. |
Instrucción MERGE | SSMA asigna MERGE con las siguientes excepciones: Repeticiones únicas frente a varias de cada cláusula: se asigna a la semántica de SQL Server para repeticiones limitadas de cada cláusula Cláusula SIGNAL: no se asigna a la semántica de SQL Server Cláusulas UPDATE y DELETE mixtas: no se asigna a la semántica de SQL Server Cláusula period-clause: no se asigna a la semántica de SQL Server |
Instrucción DELETE | SSMA asigna DELETE con las siguientes excepciones: Cláusula table-reference: only-table-reference no se asigna a la semántica de SQL Server. Cláusula period: no se asigna a la semántica de SQL Server |
Nivel de aislamiento y tipo de bloqueo | Se asigna. |
Procedimientos (SQL) | Se asignan. |
Procedimientos (externos) | Actualizaciones manuales obligatorias. |
Procedimientos (de origen) | No se asigna a la semántica de SQL Server. |
Instrucción assignment | Se asigna. |
Instrucción CALL para un procedimiento | Se asigna. |
Instrucción CASE | Se asigna. |
Instrucción FOR | Se asigna. |
Instrucción GOTO | Se asigna. |
Instrucción IF | Se asigna. |
Instrucción ITERATE | Se asigna. |
Instrucción LEAVE | Se asigna. |
Instrucción LOOP | Se asigna. |
Instrucción REPEAT | Se asigna. |
Instrucción RESIGNAL | Las condiciones no se admiten. Los mensajes pueden ser opcionales. |
Instrucción RETURN | Se asigna. |
Instrucción SIGNAL | Las condiciones no se admiten. Los mensajes pueden ser opcionales. |
Instrucción WHILE | Se asigna. |
Instrucción GET DIAGNOSTICS | SSMA asigna GET DIAGNOSTICS con las siguientes excepciones: ROW_COUNT: se asigna. DB2_RETURN_STATUS: se asigna. MESSAGE_TEXT: se asigna. DB2_SQL_NESTING_LEVEL: no se asigna a la semántica de SQL Server DB2_TOKEN_STRING: no se asigna a la semántica de SQL Server |
Cursores | SSMA asigna CURSORS con las siguientes excepciones: Instrucción ALLOCATE CURSOR: no se asigna a la semántica de SQL Server Instrucción ASSOCIATE LOCATORS: no se asigna a la semántica de SQL Server Instrucción DECLARE CURSOR: la cláusula Returnability no se asigna a la semántica de SQL Server. Instrucción FETCH: asignación parcial. Solo se admiten variables como destino. SQLDA DESCRIPTOR no se asigna a la semántica de SQL Server |
Variables | Se asignan. |
Excepciones, controladores y condiciones | SSMA asigna "exception handling" con las siguientes excepciones: Controladores EXIT: se asignan. Controladores UNDO: se asignan. Controladores CONTINUE: no se asignan. Condiciones: no se asigna a la semántica de SQL Server. |
SQL dinámico | No se asigna. |
Alias | Se asignan. |
Sobrenombres | Asignación parcial. El procesamiento manual es necesario para el objeto subyacente |
Sinónimos | Se asignan. |
Funciones estándar en DB2 | SSMA asigna funciones estándar DB2 cuando hay una función equivalente disponible en SQL Server: |
Autorización | No se asigna. |
Predicados | Se asignan. |
Instrucción SELECT INTO | No se asigna. |
Instrucción VALUES INTO | No se asigna. |
Control de las transacciones | No se asigna. |
Conversión de objetos de base de datos DB2
Para convertir objetos de base de datos DB2, 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 DB2 en sintaxis de SQL Server
En el Explorador de metadatos de DB2, expanda el servidor DB2 y, a continuación, expanda Esquemas.
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 o desactive 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 de la categoría y, a continuación, active o desactive la casilla situada junto al objeto.
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 DB2 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
En el Explorador de metadatos de DB2, seleccione Esquemas.
En el panel derecho, seleccione la pestaña Informe.
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 DB2.
Para ver el informe de un objeto individual, seleccione el objeto en el Explorador de metadatos de DB2. 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
En el Explorador de metadatos de DB2, expanda Esquemas.
Expanda el esquema que muestra un icono de error rojo.
En el esquema, expanda una carpeta que tenga un icono de error rojo.
Seleccione el objeto que tiene un icono de error rojo.
En el panel derecho, haga clic en la pestaña Informe.
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.
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 encuentre 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 en la pestaña SQL.
Puede modificar el objeto en la base de datos DB2 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 DB2 (DB2ToSQL).
Puede excluir el objeto de la migración. En el Explorador de metadatos de SQL Server y el Explorador de metadatos de DB2, desactive la casilla situada junto al elemento antes de cargar los objetos en SQL Server y migrar datos desde DB2.
Paso siguiente
El siguiente paso del proceso de migración es cargar los objetos de base de datos convertidos en SQL Server.