0

Consultas. Sugerencias de compatibilidad SQLServer y Oracle

PREGUNTA:

Hola,

La inquietud la oriento en si DCR es portable entre diferentes RDBMS SQLSERVER Y ORACLE, tengo claro que si lo podemos conectar a diferentes repositorios, pero si para la recuperación es necesario utilizar SQL compatibles entre las diferentes bases de datos.

 

Por ejemplo la siguiente consulta es compatible en SQL SERVER

Forma 1

Select columa1+columna1 from mitable.

Para Oracle es incompatible porque ORACLE el concat lo implementa por medio de la función concat que sería de la siguiente forma

Forma 2

Select concat(colunna1,columna2) from mitable.

 

La pregunta

Si tenemos un modelo en DCR pero que los datos pueden ser recuperados de una base de datos ORACLE o SQLSERVER, la forma en que se escriban las consultas afecta la recuperación de los datos, es decir si la consulta se escribió de la forma 1 daría un error, si se necesita recuperar los datos de una base de datos ORACLE.

 

Saludos

 

RESPUESTA

Hola,

 

Empiezo por el final, y es que DCR se limita a ejecutar las consultas en el entorno que corresponda, es decir, la fuente de datos.

Por este motivo, desarrollaremos las consultas con la sintaxis adecuada para cada origen.

Y por ello, desarrollar esta compatibilidad rompería con este principio de no interpretar sintaxis sino trasladar la consulta al motor de base de datos origen.

 

Las alternativas que tenemos son:

  1. Construimos una consulta con sintaxis SQL Server.

Duplicamos la consulta.

Redefinimos en la nueva consulta la base de datos origen con nuestra otra fuente Oracle

Adaptamos la sintaxis al origen de datos Oracle

  1. En el caso concreto que comentas, la consulta podría contemplar únicamente columna1, columna2

La operación de concatenación podría realizarse en el propio informe Excel, formulando:

               = columna1 & columna2

               = concatenar(columna1;columna2)

               (donde dice columnaX se referiría a la celda de cada fila)

Y utilizaríamos la macro CopiarFormulas incluida en las plantillas base de DCR para expandir las formulas en todo nuestro rango de datos.

 

Entiendo que el uso podría ser desarrollar un mismo informe para distribuir a clientes con un mismo ERP pero de diferente tecnología de base de datos, ¿puede ser?

En tal caso, podrían desarrollarse 2 paquetes de informes para distribuir según el caso (SQL/Oracle), replicar los informes no sería complejo.

 

Un saludo,

 


 


0 comments

Please sign in to leave a comment.