从select到Function返回值

时间:2018-02-06 10:51:00

标签: oracle function plsql return oracle12c

我想编写从select中返回值的函数:

compile "com.android.support:support-v4:22.1.0"

它会将select作为字符串返回。我应该使用"进入"?

或者也许可以做类似的事情:

Function Test
IS
   my_select varchar2(200):='select colA from tableA where colB = '||const||'';
BEGIN    
   return my_select;
END;

3 个答案:

答案 0 :(得分:2)

由于您正在使用__dict__,因此您可以在Oracle 12cRETURN_RESULT子句中使用Procedure等新功能,并使用WITH。见下文:

使用function

Procedure

使用CREATE OR REPLACE PROCEDURE Test (p_value in varchar2) AS job_cursor SYS_REFCURSOR; BEGIN OPEN job_cursor FOR select colA from tableA where colB = p_value; DBMS_SQL.RETURN_RESULT(job_cursor); END; 子句中的函数:

With

答案 1 :(得分:0)

我会使用引用游标执行此操作,如下所示:

Function Test (p_value in varchar2)
return sys_refcursor
IS
   ret_cur sys_refcursor;
BEGIN    
   Open ret_cur for select colA from tableA where colB = p_value;

   return ret_cur;
END test;

请注意,在您的情况下不需要动态sql;你可以简单地绑定值。

答案 2 :(得分:0)

也许下面这个例子可以帮助您了解如何解决它。我更喜欢使用游标和记录。

CREATE OR REPLACE Test (vColB IN TableA.ColB%TYPE)
RETURN TableA.ColA%TYPE
AS
    CURSOR cTableA IS
        SELECT ColA FROM TableA WHERE ColB = vColB;
    rTableA cTableA%ROWTYPE;
BEGIN
    OPEN cTableA;
    FETCH cTableA INTO rTableA;
    CLOSE cTableA;

    RETURN rTableA.ColA;
END;
/