¿Por qué no se admite DECLARE (error)?

Un usuario Pregunto ✅

jsBrizius

¿Parece que por alguna razón un DECLARE en la declaración SQL no funciona?

Aquí hay un ejemplo simple …

Seleccionar.PNG

Result.PNG

Error.PNG

En respuesta a jsBrizius

Hola @jsBrizius,

Reproducimos el mismo número que el suyo. Power BI Desktop siempre resolverá la declaración SQL de entrada del front-end como una tabla derivada. Entonces, al pasar la instrucción SQL, la instrucción «Decalare» causa un error de sintaxis. Vea la consulta obtenida en el generador de perfiles SQL:

Ca44pture.PNG

Captur5656e.PNG

Hemos informado de este problema internamente.

Saludos,

Anónimo

Hola,

Hice una nueva función (nueva fuente —> consulta en blanco) y tuve el mismo problema con esta consulta:

dejar
UserNameSQL = Sql.Database («Nombre del servidor», «Nombre de la base de datos»,[Query=»EXEC [proj].[TestOrganisation2]»])

en
UserNameSQL

pero lo resolví cambiándolo a esto:

dejar
UserNameSQL = () =>
Sql.Database («Nombre del servidor», «Nombre de la base de datos»,[Query=»EXEC [proj].[TestOrganisation2]»])

en
UserNameSQL

Espero que pueda ayudarlos 🙂

Saludos

vissvess

En respuesta a Anónimo

¡Pero qué es esto en caso de consulta directa …!
Esto convertir la consulta en función y luego invocar a una consulta y cargar es convertir la consulta al modo de importación.

¿Qué debo hacer para la consulta directa?

Vicky_Song

@jsBrizius, obtuve la información de PG de que el problema que obtienes es un comportamiento por diseño. Verifique lo siguiente como información detallada:

Esto está funcionando actualmente según lo diseñado. DirectQuery e Import usan la instrucción SQL de manera diferente. La importación ejecutará la declaración SQL directamente, pero DirectQuery usa la declaración SQL como una subconsulta como:

SELECCIONE [Column1], SUMA ([Column2])

DESDE ( ) COMO t

AGRUPAR POR [Column1]

Como resultado, existe el requisito de que la instrucción SQL sea una subconsulta válida que tenga restricciones que no se apliquen a las instrucciones SQL independientes. No permitir variables locales es una de las restricciones. Para evitar la restricción, el usuario puede definir una función con valores de tabla que permita variables locales y luego importar la tabla a través de la función con valores de tabla en lugar de la declaración SQL directamente.

entumecido

En respuesta a Vicky_Song

Gracias @Vicky_Song por la explicación. Parece que la consulta directa tiene serias limitaciones. Por ejemplo, no puede ejecutar un procedimiento almacenado (es decir, exec usp_something) como una consulta directa. Como resultado, pierde la actualización automática del modelo de datos. Así que tampoco

  • Vuelva a escribir el procedimiento almacenado de recopilación de datos como una vista (si es posible / práctico) O
  • Usar el modo de conectividad de datos importar en vez de consulta directa – y programe sus actualizaciones a través de la puerta de enlace.

Si necesita sus procedimientos almacenados para sus otras aplicaciones, primero haga la vista (para la consulta directa) y luego envuelva la vista en un proceso almacenado (para sus otras aplicaciones).

No es genial, pero casi viable (y tiene un año, ¿realmente no ha habido cambios para adaptarse a esto?).

verstreater86

En respuesta a Vicky_Song

Intenté crear una función, pero aparece el error «Uso no válido de un operador de efectos secundarios ‘EXECUTE STRING’ dentro de una función. Lo que leí fue que no se puede usar SQL dinámico en una UDF. Alguna alternativa para obtener mi dinámica ¿SQL para ingresar a Power BI como una consulta directa?

Capture.PNG

verstreater86

En respuesta a Vicky_Song

Tengo problemas para sortear las restricciones. ¿Alguna posibilidad de que puedas dar más detalles, por favor?

jsBrizius

Recibo un error cuando intento Cerrar y aplicar el Editor de consultas. Mi consulta parece funcionar bien hasta que intento Cerrar y Aplicar.

Data.PNG

Query.PNG

ApplyQueryChanges.PNG

ankitpatira

En respuesta a jsBrizius

@jsBrizius Puedo reproducir tu problema. Pero mirando su consulta puede salirse con la suya sin usar Declare. En su lugar, puede utilizar cada una de esas funciones en línea.

jsBrizius

En respuesta a ankitpatira

¿Es esto un error?

Mi consulta es mucho más difícil de leer sin la capacidad de declarar una variable. Parece extraño que funcione bien en el Editor de consultas.

En respuesta a jsBrizius

Hola @jsBrizius,

Reproducimos el mismo número que el suyo. Power BI Desktop siempre resolverá la declaración SQL de entrada del front-end como una tabla derivada. Entonces, al pasar la instrucción SQL, la instrucción «Decalare» causa un error de sintaxis. Vea la consulta obtenida en el generador de perfiles SQL:

Ca44pture.PNG

Captur5656e.PNG

Hemos informado de este problema internamente.

Saludos,

jsBrizius

En respuesta a jsBrizius

Entonces, ¿aparentemente no puedes usar DECLARE? Sigo recibiendo el mismo error con la siguiente consulta.

simpleQuery.PNG

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *