通过选择从过程返回参考光标

我需要在select语句中返回ref游标。 我使用下面的代码,我需要另一种类型来返回数据。 抱歉,我删除了一些输出变量的代码(ref游标中返回的列的真实数为 14 ) 但需要任何类型来轻松返回数据即可检查其是否正常工作。

        DeclARE
           TYPE rc IS REF CURSOR;
           v_cur                      rc;                --declare ref cursor variable
           LIST_ID                    VARCHAR2 (250);
           PERSON_NO                  VARCHAR2 (250);

        BEGIN
           MOI_SERVICES.HCR_INQUIRIES_PKG.GET_SUSPECTED_LIST_PRC (148608947,NULL,v_cur,V_STAUS,-- 0 FAIL -- 1 SUCCESS
                                                                  V_MSG);


           LOOP
              FETCH v_cur
                  INTO LIST_ID,PERSON_NO;
                EXIT WHEN v_cur%NOTFOUND;

         DBMS_OUTPUT.put_line (
                    'LIST_ID = '
                 ||LIST_ID 

                END LOOP;

              CLOSE v_cur;
             END;  
zt48475144 回答:通过选择从过程返回参考光标

REF CURSOR的想法是您打开游标,但无论谁叫您进行获取和关闭。使用SQL * Plus或Oracle SQL Developer,这是一个使用匿名PL / SQL的简单示例。 “ print”命令执行获取,显示和关闭光标的操作。

Flux<String> values = Flux.just("A","B","C","D","E","F","G");

Flux.zip(Flux.concat(Flux.just(true),Flux.just(false).repeat()),values)
        .map(x -> x.getT1() ? "_"+x.getT2().toUpperCase()+"_" : x.getT2().toLowerCase())
        .subscribe(System.out::print);    //prints "_A_bcdefg"

调用函数将如下所示:

SQL> var rc refcursor;
SQL> begin
  2    open :rc for select * from dual;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> print :rc

D
-
X

最好的问候,炖阿什顿

本文链接:https://www.f2er.com/3165111.html

大家都在问