1

我需要一种视图,其中包含要由实体框架调用的参数。经过一番搜索,我在Oracle方面想出了这个解决方案:

CREATE OR REPLACE
type PLANNING_TV is object (cod_planificacion number, des_planificacion varchar2(70), cod_cliente number, cod_compania number); 

CREATE OR REPLACE
type PLANNING_TV_TBL is table of PLANNING_TV; 

CREATE FUNCTION q_apptdept (cliente number, utilizador number)
      RETURN PLANNING_TV_TBL
   IS
      CURSOR cur (c_cliente number, c_utilizador number)
      IS
         SELECT PTV.COD_PLANIFICACION, 
           PTV.DES_PLANIFICACION, 
           PTV.COD_CLIENTE, 
           PTV.COD_COMPANIA 
          FROM RO.PLANIFICACION_TV PTV 
         WHERE PTV.COD_PAIS = 620 
           AND EXTRACT(YEAR FROM F_INICIO) >= 2016 - 1 
           AND PTV.COD_COMPANIA IN (SELECT NVL(XR.COD_COMPANHIA, XR.COD_COMPANHIA) 
                                      FROM XR_VW_CLI_GRUPO_COMP_UTIL_MMS XR 
                                     WHERE XR.COD_UTILIZADOR = c_utilizador) 
           AND COD_CLIENTE = c_cliente 
         ORDER BY COD_PLANIFICACION DESC;

      ty             PLANNING_TV;
      tbl            PLANNING_TV_TBL := PLANNING_TV_TBL ();
   BEGIN
      FOR rec IN cur (cliente, utilizador) LOOP
         ty := PLANNING_TV (rec.COD_PLANIFICACION, rec.DES_PLANIFICACION, rec.COD_CLIENTE, rec.COD_COMPANIA);
         tbl.EXTEND;
         tbl (tbl.LAST) := ty;
      END LOOP;

      RETURN tbl;
   END;

基本上我创建数据类型,然后创建此数据类型的表并返回包含我的数据的表。

为了获得这些信息,我可以做(甲骨文方面):

SELECT * FROM TABLE(q_apptdept(<parm1>, <parm2>)); 

但是,如何在我的实体框架数据服务上调用它呢?

我想到了类似 Createquery 的东西,但我不得不说返回的类型,但是是自定义的。所以不知道怎么表达。

4

0 回答 0