2009-09-07 10 views
6

Una de las aplicaciones que desarrollo se instala localmente en el sitio del cliente. Esto significa que tenemos que admitir MySQL, MSSQL y Oracle, ya que no todos los clientes usan el mismo motor de base de datos.Convierta la secuencia de comandos MS SQL a Mysql y Oracle

Estoy escribiendo un parche para la aplicación, parte de lo cual implica la ejecución de un script de 5000 líneas sql para realizar modificaciones en la base de datos. El guión está escrito usando la sintaxis MSSQL, sin embargo, me preguntaba si existe una aplicación para convertir automáticamente la sintaxis MSSQL a la de Oracle y/o MySQL para evitar que tenga que hacerlo manualmente.

+2

La pregunta es: ¿Confiaría en sus bases de datos de 'producción' con un script generado automáticamente? –

+0

Si pasó los procedimientos de prueba de QA, por supuesto. – user169743

+0

¿Tiene control de calidad? Suerte. :) – JRadness

Respuesta

0

Estoy escribiendo un parche para la aplicación, parte de lo cual implica la ejecución de una secuencia de comandos sql 5000 para hacer modificaciones en la base de datos. La secuencia de comandos está escrita usando la sintaxis MSSQL, sin embargo, me preguntaba si hay una aplicación para convertir automáticamente la sintaxis MSSQL a la de Oracle y/o MySQL para ahorrarme tener que hacerlo manualmente.

Es casi imposible.

El subconjunto común de SQL admite todos estos sistemas es bastante poco.

Dado que tiene 5000 líneas de código en su secuencia de comandos, lo más probable es que esté fuera de este subconjunto.

La peor parte es que generalmente no son solo las diferencias de sintaxis, sino más bien las conceptuales.

  • Oracle, por ejemplo, apoya MERGE declaración que permite insertar, eliminar y actualizar en una sola consulta.

    Ni SQL Server 2005 ni MySQL admiten uno.

  • MySQL admite la eliminación de varias tablas a la vez: no disponible en Oracle o SQL Server.

  • SQL Server, a diferencia de Oracle y MySQL, puede actualizar CTE 's que utilizan funciones analíticas.

1

Y aún más preocupante es que las bases de datos compatibles con diferentes sistemas de cerraduras, por lo que pueden ser capaces de obtener algunas tablas e índices de allí, pero te pueden introducir algunos temas que son muy difíciles de depurar/replicar cuando exponerlo a la naturaleza.

Necesita como 3 expertos para ordenar ese lote, uno cada uno de SQL Server, MySQL y Oracle. Esa o su base de datos deben ejecutarse con un máximo de un usuario, con bajo rendimiento y mecanismos de base de datos muy promedio.

Lo sentimos ...

+0

divertido porque solo lo usa un usuario (la aplicación) y cualquiera de los comandos ejecutados es muy simple, simplemente actúa como una capa de persistencia. – user169743

1

no sé de un convertidor de sintaxis de programación del motor de base de datos. Sin embargo, dado que está trabajando en una plataforma de múltiples bases de datos, consideraría utilizar Enterprise Library y su bloque de aplicaciones. Esto te ahorrará dolores de cabeza, ¡tienes que confiar en mí!

Soy consciente de que quizás no tengas suficiente tiempo para tus próximos lanzamientos, por lo que tendrás que configurar los scripts manualmente, pero hazte un favor y considera usar Microsoft Enterprise Library.

Otra forma posible es acercar estos motores lo más cerca posible entre sí para que pueda trabajar más cómodamente con los tres. Por lo tanto, requiere que analice y decida qué función debe crearse dónde y por qué. Este es un trabajo duro, en serio.

Según mi propia experiencia, ya no desarrollo sin Enterprise Library, al menos el Data Application Block (DAAB).

Aquí el enlace:

  1. http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en
  2. http://www.codeplex.com/entlib

Avísame si esto le ayudó. Si necesita más ayuda para configurar su capa de acceso a datos con Enterprise Library, hágamelo saber.

EDITAR 2015.01.16

Otra mejor enfoque en estos días es el uso de cualquiera de NHibernate, Entity Framework u otras herramientas ORM como estos.

Con ellos, ya no necesita ningún script SQL, todo se genera para usted en función de su configuración de RDBMS.

2

Para la conversión a Oracle puede probar el Migration Workbench.

+0

Su enlace está muerto. Por favor actualízalo. –

+0

O, ya sabes, podrías actualizarlo ... tienes suficiente reputación. –

+0

Porque estoy buscando lo mismo :) –

4

Este es un tema antiguo, pero recomendaría utilizar la siguiente herramienta: http://www.sqlines.com/online. Tuve una buena experiencia en usarlo. No se encontraron problemas desde hace 3 meses (cuando comencé a usarlo).

Cuestiones relacionadas