Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
RakeshSinghr
Resolver I
Resolver I

Oracle Stored Proc en PBI Desktop

Hola

Necesito ayuda para ejecutar un procedimiento almacenado de oráculo que simplemente devuelve pocas columnas.

Estoy recibiendo el error "Oracle:ORA00900: instrucción SQL no válida".

Estoy usando el cursor ref - ver abajo el código - produce un error. Funciona bien en el desarrollador de sql.

CREAR O REEMPLAZAR esquema DE PROCEDIMIENTO. TestSP
Como
c1 SYS_REFCURSOR;
Comenzar

abierto c1 para
SELECT Col1,Col2
FROM LinkDBServer;
DBMS_SQL. RETURN_RESULT c1);

FIN;

ejecutar schemax. TestSP

Uso de funciones Pipened - no hay ningún error en el escritorio Powerbi

CREAR O REEMPLAZAR TIPO t_type
COMO OBJETO
(
col1 NUMBER(22,14) NULL,
col2 VARCHAR2(120)
);


CREAR O REEMPLAZAR TIPO t_table_type
COMO TABLA DE t_type;

CREAR O REEMPLAZAR FUNCIONES fnc_Get_t_Pipelined
DEVOLVER t_table_type
PIPELINED
Como
Comenzar

PARA v_Rec IN (SELECT Col1, Col2 FROM LinkDBServer where rownum<-10) LOOP

PIPE ROW (t_type(v_Rec.Col1, v_Rec.Col2));

END LOOP;

DEVOLVER;
FIN;

SELECT Col1,Col2 FROM TABLE(fnc_Get_t_Pipelined());

¿Alguna sugerencia sobre cómo ejecutar un proceso de oracle en los archivos de escritorio de Power BI?

19 REPLIES 19
Syndicate_Admin
Administrator
Administrator

Rakesh, funciona perfectamente en el modo de importación. cuando utilicé la misma sintaxis en el modo Directo, está dando un error de sintaxis como falta la parátesis derecha.

¿Cómo podemos llamar en modo Consulta Directa?

RakeshSinghr
Resolver I
Resolver I

Para cualquier persona en el mismo barco que yo - Oracle almacenado proc con cursores ref se puede ejecutar dentro de power bi desktop. Sólo tiene que ejecutarse con la declaración de variable de cursor.

¿Puede compartir más información sobre cómo llamar al procedimiento almacenado de oráculo con sys_refcursor de power bi

Dentro de Oracle:

CREAR O REEMPLAZAR EL PROCEDIMIENTO [ESQUEMA]. [STOREDPROCNAME]

( P_RC out SYS_REFCURSOR )

Como

Comenzar

P_RC ABIERTO PARA SELECT COL1,COL2,COL3 BLAH BLAH BLAH

FIN;

En Power BI Desktop:

DECLARE P_RC SYS_REFCURSOR;

Comenzar

[ESQUEMA]. [STOREDPROCNAME] (P_RC);

DBMS_SQL. RETURN_RESULT(P_RC);

FIN;

Espero que esto ayude.

saludos

Rakesh Singh

Hi RakeshSinghr,

Su respuesta a continuación funcionó para mí para el procedimiento almacenado, gracias por publicar. ¿Puede publicar un ejemplo si quiero tener una selección de una tabla con la cláusula where en el cuadro Instrucción SQL en Opción avanzada al obtener datos de Oracle? Solo fyi estoy uniendo varias tablas en esta instrucción select y devolviendo filas.

¿Realmente consiguió que esto funcionara desde el servicio Power BI a través de la puerta de enlace? Si es así, ¿cómo lo hiciste?

Rakesh --

Estoy llamando correctamente a un procedimiento almacenado de Oracle devolviendo un sys_refcursor en Power BI Desktop; pero cuando publico mi informe en el servicio Power BI mediante una puerta de enlace empresarial (área de trabajo premium), el conjunto de datos se errores al intentar actualizar diciendo que la columna no existe en el conjunto de filas. ¿Ha podido actualizar el informe en Power BI Service llamando a un programa almacenado de Oracle devolviendo un sys_refcursor?

Sí, funcionó para mí a través de la puerta de enlace. No hay ninguna razón por la que funcione en power bi desktop pero no a través de la puerta de enlace. Ejecute el proc almacenado utilizando las credenciales de la cuenta de origen de datos de la puerta de enlace para ver si hay algún problema de permisos

gracias por la respuesta Rakesh. Como otro póster, Chuy, respondió (trabajamos en la misma organización y él me está ayudando a tratar de solucionar el error). El informe y el SP se ejecutan mediante las credenciales de la puerta de enlace. Pero obtenemos el siguiente error al actualizar el conjunto de datos después de que el informe se haya publicado en Power BI Service mediante la puerta de enlace:

El El mensaje de error que recibimos en el servicio Power BI es:
La columna '<pii>Column Name</pii>' no existe en el conjunto de filas. Tabla: Consulta1

También he leído que algunas versiones del cliente Oracle no admiten sys_refcursors, ¿podría ser este el problema para nuestro servidor Gateway? ¿Hay alguna otra configuración del servidor de puerta de enlace que deba habilitarse? Este informe se ejecuta y actualiza sin errores en Power BI Desktop en varios equipos.

Sí, he probado la ejecución de este SP con las credenciales que usamos en el origen de datos en la puerta de enlace y es capaz de ejecutar/representar datos. El mensaje de error que recibimos en el servicio Power BI es:
La columna '<pii>Column Name</pii>' no existe en el conjunto de filas. Tabla: Consulta1

Parece que no es capaz de "atrapar" el conjunto de récords final generado por el SP.

¿Recuerda haber hecho algo más en específico, ya sea en su script SQL o en la configuración en el cliente Oracle instalado en el servidor Gateway?

Gracias...

Estoy teniendo este mismo problema, el mensaje de error es:
La columna '<pii>Column Name</pii>' no existe en el conjunto de filas. Tabla: Consulta1

Y he agotado todas las búsquedas posibles en Google tratando de encontrar una solución para esto.

¡Cualquier comentario sobre esto será apreciado!

@chuy-varela alguna vez hizo que esto funcionara (llamando al procedimiento almacenado de Oracle a través de la puerta de enlace)

Recientemente he tenido este problema y he abierto un caso con Microsoft, es una limitación conocida en la actualidad; pero recibió comentarios esta semana del grupo de ingeniería de Power BI de que van a agregar esta brecha de funcionalidad como una solicitud de característica que se incluirá en su hoja de ruta, sin ETA hasta el momento, aunque cuándo se abordará esto.

Hola @klinejordan ! No, esta es una limitación conocida que está bien descrita en la documentación en línea, simplemente no pude encontrar ese documento antes de abrir mi pregunta aquí.

Mark Vaillancourt me señaló el documento donde se revela esto:

https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-connect-oracle-database#capabilities-...

"Si desea importar datos mediante una consulta de base de datos nativa, coloque la consulta en el cuadro de instrucción SQL, que aparece cuando expande la sección Opciones avanzadas del cuadro de diálogo de la base de datos Oracle. Power BI Desktop no admite consultas nativas de Oracle que ejecutan un procedimiento almacenado y consultas nativas de Oracle en "begin ... End" block no devuelve ningún conjunto de resultados."

Hi Rakesh

 

Thanks for the Code.

 

I am not getting any error during connection but when tried to save changes, getting error missing right paranthasis. Checked the syntax in advanced editor and everything looks correct but still I can see error.

 

Any ideas.

 

Thanks

siva

Thanks Rakesh,

 

Code is working, didn't do anything special just restarted the Power BI.

 

Thanks

Siva

v-lili6-msft
Community Support
Community Support

hola @RakeshSinghr

Podría utilizar el procedimiento almacenado de Oracle en power bi, pero parece que Ref_Cusors no está disponible por ahora.

saludos

Lin

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hola @RakeshSinghr ,

tal vez esta entrada de blog ayudará.

https://hatfullofdata.blog/power-query-function-to-execute-a-procedure/

Did I answer your question?
Please mark my post as solution, this will also help others.
Please give Kudos for support.

Marcus Wegener works as Full Stack Power BI Engineer at BI or DIE.
His mission is clear: "Get the most out of data, with Power BI."
twitter - LinkedIn - YouTube - website - podcast


v-shex-msft
Community Support
Community Support

HI @RakeshSinghr,

¿Qué modo de conexión funciona? AFAIK, no puede invocar procedimientos almacenados en instrucciones SQL cuando se trabaja en modo de consulta directa.
saludos
Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors