在仅支持标准SQL的应用程序中使用Oracle绑定变量

时间:2017-07-04 19:44:27

标签: sql oracle plsql

我有一个应用程序可以正常执行和解析标准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;

0 个答案:

没有答案