Cómo pasar un parámetro a un procedimiento almacenado de MySQL desde powerBI

Un usuario Pregunto ✅

ebjm

Hola, estoy usando powerBI para conectarme a un servidor MySQL. Podemos conectarnos bien y podemos recibir datos bien: estoy llamando a un procedimiento almacenado desde powerBI usando el siguiente comando;
LLAME a mi_sp();

Mi problema es que cuando trato de pasar un parámetro al procedimiento almacenado como este;
ESTABLECER @p0 = ‘xyz’;

LLAME a mi_sp(@p0);

Power BI devuelve un mensaje que dice que debo usar una conexión sin cifrar. Cuando lo hago, aparece el siguiente error: «MySQL: se encontró un error fatal durante la ejecución del comando».

Entonces mi pregunta es: ¿cómo puedo pasar un parámetro a un procedimiento almacenado de MySQL desde powerBI?

Agradecería cualquier sugerencia/consejo. Gracias.

Anónimo

Hola @ebjm

Espero que esto pueda ayudarte. Escribí esta respuesta en otro hilo:

«Resulta que esto es realmente posible en Power BI. Creé un video tutorial sobre cómo hacer esto aquí.

La esencia básica es agregar un objeto visual R que tome su selección de segmentación como su valor. Hay un paquete R llamado RODBC que puede ejecutar código SQL en su base de datos. Luego puede pasar su valor de segmentación a la consulta SQl usando alguna interpolación de cadenas o la función «pegar». Déjame saber cómo funciona esto para ti».

Deberá cambiar el tipo de conexión de SQL Server a MySQL.

Espero que esto ayude,

parker

ebjm

En respuesta a Anónimo

Gracias pero estoy desconcertado. ¿Por qué puedo pasar lo siguiente de Power BI a mi servidor MySQL?
LLAME a mi_sp();
pero no me dejan pasar
ESTABLECER @p0 = ‘xyz’;
LLAME a mi_sp(@p0);

Anónimo

En respuesta a ebjm

¿Cómo lo estás pasando?

ebjm

En respuesta a Anónimo

Captura.PNGLo paso a través del campo de texto ‘Declaración SQL’ después de ‘Obtener datos’.

Anónimo

En respuesta a ebjm

No estoy muy familiarizado con MySQL, pero cuando me conecte a SQL Server, Power BI envolverá todo el comando en un SELECCIONAR.

Eso me lleva a creer que

SELECT
*
FROM (CALL my_sp();
)

funcionará, pero lo siguiente no:

SELECT
   *
FROM
   (SET @p0 = 'xyz';
   CALL my_sp(@p0);
   )

Tal vez esa es la razón de tus problemas. Pero como dije en una publicación anterior, eche un vistazo a mi video y podrá solucionar su problema si su situación se ajusta. Implica el uso de un objeto visual R para ejecutar su SP en lugar de la función Obtener datos de Power BI.

Espero que esto ayude,

parker

nirvana_moksh

En respuesta a Anónimo

Entonces, ¿puede usar el código R para pasar el parámetro de fecha en su Procedimiento almacenado y esto también funcionará con más de un parámetro?

Anónimo

En respuesta a nirvana_moksh

Sí, puede pasar tantos campos al objeto visual R como necesite. Luego puede hacer referencia a todos ellos en su código SQL incrustado en su código R

nirvana_moksh

En respuesta a Anónimo

Voy a probar esto esta noche, ¿tu video detalla toda la información necesaria? También para el conector RODBC, ¿necesitamos descargarlo en SSMS?

Anónimo

En respuesta a nirvana_moksh

La única diferencia entre mi video y su situación es que pasará un parámetro de Power BI. Para hacer esto, deberá crear el parámetro y habilitar la carga para que luego pueda pasarlo a R Visual. En cuanto a RODBC, es un paquete R que deberá instalar. Aparte de eso, deberías estar listo para irte. Siéntase libre de comunicarse con preguntas.

Editar: Al leer su publicación inicial, no estoy seguro de si está pasando un parámetro de Power BI. Podrá pasar cualquier columna o parámetro de Power BI con este método.

Deja un comentario

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