我想编写从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;
答案 0 :(得分:2)
由于您正在使用__dict__
,因此您可以在Oracle 12c
和RETURN_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;
/