【问题标题】:Oracle 11g View resultset of table from Stored procedure in ToadOracle 11g 从 Toad 中的存储过程查看表的结果集
【发布时间】:2014-02-07 15:37:35
【问题描述】:

我是 Oracle 11g 的新手,想查看存储过程中表输出的结果集。我已经创建了程序并执行了它。我只想像在 SQL Server 中那样以网格的形式查看输出。请帮帮我。

这是我的程序的声明:

规格:

TYPE ret_cursor IS REF CURSOR;
procedure get_data(
p_start_dt in varchar2, 
p_end_dt in varchar2, 
p_results out ret_cursor,
p_err_no out number,
p_err_msg out varchar2
);

主体:

PROCEDURE get_data(
      p_start_dt    IN      VARCHAR2, 
      p_end_dt      IN      VARCHAR2, 
      p_results     OUT     ret_cursor,
      p_err_no      OUT     NUMBER,
      p_err_msg     OUT     VARCHAR2
   )

【问题讨论】:

  • :你使用什么工具来执行这个过程,你的过程的声明是什么。
  • 正如我在标题中提到的那样,我正在使用 Toad。请帮忙
  • :在下面查看我的答案

标签: oracle oracle11g


【解决方案1】:

如果您使用的是 TOAD,那么很容易看到 refcursor 的输出。

  1. 在 Toad 编辑器中首先复制以下代码

    DECLARE
     v_err_no number;
     v_err_msg VARCHAR2(200);
    BEGIN
    get_data(
       p_start_dt    =>  SYSDATE,      --depend on you
       p_end_dt      => SYSDATE+10,    --depend on you
       p_results     =>   :ret_cursor,
       p_err_no      =>   v_err_no,
       p_err_msg     =>   v_err_msg
       );
    --print error message   
    END;   
    
  2. 现在转到 Editor-->Execute Statement f9,然后点击

  3. 出现弹窗,询问你ret_cursor类型,选择类型作为光标,如下截图所示

  • 点击确定,即可在数据网格中看到结果。

【讨论】:

    【解决方案2】:

    如果您只想查看结果,您可以使用 SQL*Plus,它是 REFCURSOR 绑定变量和 PRINT 命令:

    SQL> create or replace procedure p
      2  (
      3    x out sys_refcursor
      4  )
      5  is
      6  begin
      7    open x for select 1 a, 'a' b from dual;
      8  end;
      9  /
    
    Procedure created.
    
    SQL> var rc refcursor
    SQL> exec p(:rc)
    
    PL/SQL procedure completed.
    
    SQL> print rc
    
             A B                                                                    
    ---------- -                                                                    
             1 a    
    

    【讨论】:

    • 有没有办法在 Toad GUI 中以网格的形式查看输出?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 2013-11-08
    • 1970-01-01
    • 2013-09-15
    • 2010-11-13
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多