如何从Procedure快速查看REF CURSOR输出?

时间:2016-04-27 18:48:26

标签: stored-procedures oracle11g cursor

我有一个Oracle存储过程,它接受/返回REF CURSOR。 结果集包含许多列,比如20个。我知道怎么循环了 光标并将其显示在屏幕上(参见附件)。

我的问题是:无论如何我可以消除我的DECLARE中我必须定义TYPE RECORD的代码。如果返回的结果包含50列,则这将变得乏味。是否有其他选项或更简化的版本,有人可以告诉我?最终我正在寻找最少量的代码 循环返回光标并在屏幕上显示值。

谢谢!

- Oracle程序

Get_Student(ioStu_cursor IN OUT REF CURSOR, iDate IN DATE)

- PL / SQL显示光标中的记录

SET SERVEROUTPUT ON;
declare 
  c_cursor SYS_REFCURSOR;

  type a is record
  (
        col1 number(10,0);
        col2
        ...
        col20
  );

  c_record a;

begin  
  Get_Student(c_cursor, to_date('26-apr-2016', 'dd-mon-yyyy'));  

  loop
    fetch c_cursor into c_record;    
    exit when c_cursor%NOTFOUND;
    dbms_output.put_line('col1: ' || c_record.col1);    
  end loop;

0 个答案:

没有答案