Oracle函数返回表中的所有列

时间:2018-04-04 12:23:37

标签: oracle plsql

我有这个功能:

CREATE OR REPLACE FUNCTION checkLiveSoccerOdd (p_FIXID    VARCHAR2,
                                               p_TYPE     VARCHAR2,
                                               p_RES      VARCHAR2)
   RETURN NUMBER
IS
   odd   NUMBER;
BEGIN
   SELECT O.Odd
     INTO odd
     FROM LIVE M, ODDS O
    WHERE     M.FIXID = O.FIXID(+)
          AND M.FIXID = p_FIXID
          AND O.TYPE = p_TYPE
          AND O.RES = p_RES;

   RETURN odd;
END;

现在我需要在查询中获得更多列,例如:

Select  M.*,  O.*

我试过光标,但我没有得到结果。 任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

CREATE OR REPLACE FUNCTION checkLiveSoccerOdd (p_FIXID    VARCHAR2,
                                               p_TYPE     VARCHAR2,
                                               p_RES      VARCHAR2)
   RETURN SYS_REFCURSOR
IS
   COL   SYS_REFCURSOR;
BEGIN
OPEN COL FOR
   SELECT M.*,O.*    
     FROM LIVE M, ODDS O
    WHERE     M.FIXID = O.FIXID(+)
          AND M.FIXID = p_FIXID
          AND O.TYPE = p_TYPE
          AND O.RES = p_RES;

   RETURN COL;
END;