我有一个应用程序可以正常执行和解析标准SQL查询,但不能解析PL / SQL。
我试图使用绑定变量,并且由于缺乏PL / SQL支持,我想我可以创建一个接受单个变量的函数,查询数据库并返回结果。
我的功能如下:
CREATE OR REPLACE FUNCTION BIND_FUNC
(
IN_FLOAT IN BINDING_TEST.C2_FLOAT%TYPE
) RETURN SYS_REFCURSOR AS
BINDTEST_CURSOR SYS_REFCURSOR;
BEGIN
OPEN BINDTEST_CURSOR FOR
'SELECT * FROM BINDING_TEST WHERE C2_FLOAT = :IN_FLOAT' USING IN_FLOAT;
RETURN BINDTEST_CURSOR;
END BIND_FUNC;
我的问题是,我不确定如何将返回值作为普通结果集显示在我的应用程序中。
在SQL Developer中,如果我运行查询 SELECT BINDING_FUNC(1)FROM BINDING_TEST ,我得到的结果如下:
{<C1_VARCHAR2=This is some text,C2_FLOAT=1>,}
如果我执行下面的操作,我会更多地了解我正在寻找的结果,但我的应用程序中的语法似乎不再受支持:
VARIABLE cur REFCURSOR;
BEGIN
:cur := BIND_FUNC(1);
END;
/
PRINT cur;