Forum Discussion

RakeshSinghr's avatar
RakeshSinghr
Icon for Resolver I rankResolver I
6 years ago

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?

20 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    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

  • v-lili6-msft's avatar
    v-lili6-msft
    Icon for Community Support rankCommunity 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

  • 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.

    • siva_powerbi's avatar
      siva_powerbi
      Icon for Helper IV rankHelper IV

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

      • RakeshSinghr's avatar
        RakeshSinghr
        Icon for Resolver I rankResolver I

        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

  • 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?