En 2001, trabajé en un producto que tenía que soportar Oracle 8, MS SQL Server 2000 y MS Jet 3.51 (por ejemplo, Access97). En teoría, podríamos haber empleado especialistas para cada uno de estos productos y un proceso de prueba que aseguró que todos produjeran los mismos resultados. En la práctica, hubo una tendencia hacia el mínimo común denominador.
Un enfoque fue crear tablas vinculadas en Access/Jet para Oracle y SQL Server y luego escribir exclusivamente Jet SQL. El problema aquí es que la sintaxis de Jet SQL es muy limitada.
¡Otro enfoque (comúnmente empleado incluso en sistemas que solo han usado un producto DBMS!) Es intentar hacer más del trabajo que uno realmente debería en el front end, cosas que deberían ser el dominio del DBMS . El problema aquí es que a menudo es desastroso en cuanto a la integridad de los datos. Estoy seguro de que conoce la situación: la aplicación debe contener y evitar escribir datos ilegales, pero sin restricciones en el mismo DBMS está abierto a los errores de la aplicación. Y luego está el usuario que sabe cómo conectarse a los datos a través de Excel, SQL Management Studio, etc., y omitir así por completo la aplicación que se supone que garantiza la integridad de los datos ...
Personalmente, me encontré cada vez más escribiendo código en una escala móvil de lo que luego descubrí que se llamaba 'portabilidad'. Idealmente, en primera instancia es el código 'vainilla' entendido por todos los DBMS que apoyamos y al hacerlo, descubrí los estándares SQL-89 y SQL-92. Lo siguiente fue un código SQL que podría traducirse fácilmente (quizás usando código) para cada DBMS, por ej. Oracle usó esa sintaxis horrible de unión externa infija pero el concepto de unión externa estaba allí; Oracle y SQL Server usaron SUBSTRING pero Jet requirió que la palabra clave fuera MID $; etc. Por último, hay cosas que simplemente tienen que ser específicas de la implementación, obviamente evitadas si es posible mientras se sigue prestando la debida atención a la integridad de los datos, la funcionalidad y el rendimiento.
Afortunadamente, en los años transcurridos los productos se han estado acercando a los estándares ANSI SQL (aparte de Jet, que fue desaprobado por MS ahora solo se mantiene vivo por el equipo de MS Access aparentemente cortando características importantes como seguridad y replicación). Así que he mantenido el hábito de escribir SQL estándar siempre que sea posible.
ora ¿por qué tu tabla única entre corchetes? – Xailor