Mvsql en el App Builder Jitterbit
Descripción general
mvSQL es el dialecto de SQL propio de App Builder. Permite a los usuarios aprender y usar un único conjunto de sintaxis y funciones, mientras App Builder traduce esa sintaxis a expresiones apropiadas para el proveedor. mvSQL se puede usar para consultar bases de datos relacionales, almacenamiento, REST, sistemas de archivos o cualquier otro tipo de proveedor de datos compatible con App Builder.
Versiones de mvSQL
Las versiones de mvSQL compatibles con App Builder se enumeran y la versión compatible más antigua aparece primero (Versión 1).
Versión 1
La versión 1 de mvSQL, la versión heredada más antigua compatible con App Builder, es incluso más estricta de lo que permitíamos antes de refactorizar la gramática y el analizador. La mayoría de las aplicaciones heredadas de App Builder deberían ejecutarse con esta versión.
Versión 2
La versión 2 de mvSQL mejora la sintaxis de paso a través, permite cerrarla y reanudar expresiones mvSQL regulares, y admite caracteres de escape.
Ejemplo
La versión 1 vería esto (en MS SQL Server) ${ [vendor syntax] } || 'my example'
como ${ [vendor syntax] || 'my example' }
representación [vendor syntax] || 'my example'
.
La versión 2 analizaría como estaba previsto y se representaría como [vendor syntax] + 'my example'
Tenga en cuenta que la concat corresponde al proveedor.
Versión 3
La versión 3 de mvSQL requiere que los prefijos de tabla sean correctos. Hasta esta versión, si el prefijo de tabla era incorrecto y App Builder podía inferirlo comprobando las demás columnas, permitíamos prefijos de tabla incorrectos.
Ejemplo
En versiones anteriores de mvSQL, usar un alias de tabla inexistente, o incluso uno que sí exista pero que no contenga la columna referenciada, funcionaba siempre que el nombre de la columna solo apareciera en una de las fuentes. Este escenario presenta un problema cuando el mismo nombre de columna se agrega a otra fuente y la regla de negocio deja de funcionar.
Versión 4
En la versión 4 de mvSQL, las funciones de tiempo de ejecución generan un tipo adecuado, en lugar de ser siempre una cadena, y los valores nulos no se fusionan en una cadena vacía.
Ejemplo
Shared(ColumnName, numeric)
- Antes de la versión 4, App Builder generaba
'0'
si no se proporcionó la columna, o'1'
si lo fuera (tenga en cuenta que se representa como una cadena, asumiendo que el valor compartido aquí es1
por supuesto) - A partir de la versión 4, App Builder ahora genera resultados
null
Si no se proporcionó, y1
(sin las comillas), también parametrizamos si el proveedor lo admite (@p0
), ya que esto puede mejorar el rendimiento del proveedor. - Esto también facilita la fusión del valor. Antes, si querías cambiar el valor si no se proporcionaba, necesitabas algo como
IIF(Shared(ColumnName) = '', -1, Shared(ColumnName, numeric))
, ahora puedes usarISNULL(Shared(ColumnName, numeric), -1)
Las nuevas reglas se crean con la versión más reciente disponible (versión 4), pero para evitar infringir las reglas antiguas, las mantuvimos intactas. Si se realizan cambios en una regla que no se verá afectada (principalmente reglas sin funciones de tiempo de ejecución), App Builder actualizará automáticamente la versión de mvSQL.
Versión 5
En la versión 5, mvSQL trata cualquier paso a través como susceptible de GRUPO cuando es parte de una consultar agregada.
Para indicar que una expresión es un agregado, llámela con el Expression()
función.
Ejemplo
Expression(${Count(1)})