2010-06-29 18 views
5

Tenemos que migrar nuestra base de datos de MSSQL a Oracle y tenemos más de 100 procedimientos almacenados escritos en PL/SQL TSQL. Sé que es una posibilidad remota, pero ¿alguna vez alguien ha utilizado con éxito una herramienta de migración automática para hacer el trabajo? He visto algunas herramientas en la web, pero no tengo forma de juzgar su capacidad para manejar varios códigos. Cualquier experiencia personal en el asunto ayudaría.¿Herramienta de migración de TSQL a PL/SQL?

+0

posible duplicado de [Microsoft SQL Server a Oracle Data Migration (Conversion) (Otro RDBMS está bien, también)] (http://stackoverflow.com/questions/1484814/microsoft-sql-server-to-oracle-data- migration-conversion-other-rdbms-ok-too) – APC

+1

"Necesitamos migrar nuestra base de datos de MSSQL a Oracle y tenemos más de 100 procedimientos almacenados escritos en PL/SQL". Esto no tiene sentido. Si está convirtiendo de MSSQL a Oracle, seguramente sus procedimientos almacenados están escritos en T-SQL, y quiere que se conviertan a PL/SQL ...? – ObiWanKenobi

+0

@ObiWan, gracias, arregló eso. – gooli

Respuesta

4
  1. SwisSQL - SQL Server to Oracle Migration Tool 3.5;
  2. tsql to pl sql;
  3. Convert SQL Server T-SQL to Oracle PL/SQL (syntax and equivalences);

Sin embargo, hay algunas optimizaciones que pueden ser necesarias para realizar después de la conversión. Por lo tanto, debería considerar revisar la conversión una vez que haya finalizado.

editar # 1

Otra herramienta interesante sería:

Spectral Core's Full Convert Enterprise

¿Tiene experiencia con alguno de ellos?

Desafortunadamente no. Acabo de realizar conversiones a SQL Server utilizando SSIS.

editar # 2

Parece que hay una herramienta más apropiada directamente de Oracle que iba a mejorar la confianza.

Directamente desde Oracle: Migrating from Microsoft SQL Server to Oracle

y el núcleo dispone de:

tecnología de migración desarrollador

SQL es compatible con las siguientes características básicas cuando se migra de Microsoft SQL Server:

  • Convierte automáticamente los tipos de datos de columna a los tipos de datos Oracle apropiados.
  • Resuelve automáticamente conflictos de nombres de objetos, como conflictos con palabras reservadas de Oracle.
  • Analiza y transforma procedimientos almacenados de T-SQL, funciones, desencadenadores y vistas a Oracle PL/SQL.
  • Ofrece capacidades avanzadas de personalización como la capacidad de cambiar las asignaciones de tipos de datos, eliminar y cambiar el nombre de los objetos.
  • Genera informes sobre el estado de la migración.
  • Genera los scripts DDL para la creación de la base de datos Oracle de destino.
  • Genera secuencias de comandos para el movimiento de datos
  • Muestra mensajes informativos, de error y de advertencia sobre la migración en una ventana de progreso.

    1. Por lo tanto, le sugiero que observe todos los detalles que no se mencionan con anterioridad;
    2. Observe detenidamente los detalles de información proporcionados por la herramienta;
    3. Pruebe sus procedimientos almacenados después de convertirlos.

Si se echa un vistazo como lo que SQL Server no ofrece en comparación con Oracle, estos son puntos en los que me gustaría ver en primer lugar. Para conocer estas diferencias, siga el enlace 3. Convert SQL Server T-SQL to Oracle PL/SQL (syntax and equivalences) arriba.

+0

¿Tienes experiencia con alguno de ellos? ¿Qué tan cerca están de trabajar? ¿Encontraste algún error sutil que debería tener en cuenta? – gooli

+0

Consulte mis ediciones para obtener respuestas. Sin embargo, 100 procedimientos almacenados no es mucho trabajo para hacer a mano, si se siente cómodo con Oracle PL/SQL. –

+0

La traducción no es lo que me preocupa, es la prueba la que me intimida. Pero supongo que no hay forma de evitar eso. Probablemente vamos a escribir un conjunto de pruebas unitarias en Java que podrá ejecutarse tanto en Oracle como en SQL Server y actuará como una herramienta de regresión. Gracias por su exhaustiva respuesta e investigación. – gooli

1

En el pasado traté de hacer lo contrario, pero me temo que no hay una manera 100% confiable. Algunas características son exclusivas de cada RDBMS y no pueden ser replicadas por una herramienta (por ejemplo, campos de IDENTIDAD en SQL Server vs Sequences en Oracle). Teniendo en cuenta que, al final, tuve que revisar cada Procedimiento almacenado para asegurarme de que hace lo que se supone que debe hacer, me di cuenta de que era mejor planificar un puerto manual y aprender algo de PL/SQL mientras lo hacía.

5

Sugeriría hacerlo a mano. Primero, para mí, personalmente, un 100 no suena tan mal en absoluto. Apuesto a que su desarrollo sigue patrones, usando getutcdate() en lugar de current_timestamp, etc. Esto significa que probablemente haya algunos problemas muy repetitivos de los que usted y su equipo podrán aprender. Para mí, esto tendrá el beneficio adicional de enseñarte los matices/extensiones de PL/SQL, que probablemente necesitarás aprender para mantener/expandir el nuevo sistema.

¡Buena suerte!

+0

Hacerlo a mano es la opción predeterminada con la que íbamos, pero pensé que vería si hubiera una manera más simple. Gracias. – gooli