【问题标题】:PL/SQL Cursor is not displaying the resultsPL/SQL 游标不显示结果
【发布时间】:2013-03-14 03:36:40
【问题描述】:

我对 PL/SQL 编程非常陌生。我有一张名为course 的表。当我这样做时:

select * from course where branchid = 'B1';

返回结果如下:

这是我尝试针对该表运行的 PL/SQL 程序:

declare 
    v_branchId course.branchid%TYPE := 'B1';
    cursor course_cur is
    select * from course where branchid = v_branchId;

    v_cursor course_cur%ROWTYPE;

BEGIN
    open course_cur;
    LOOP
        FETCH course_cur into v_cursor;
        exit when course_cur%NOTFOUND;

        dbms_output.put_line('The course id is  ' || v_cursor.courseid );

    END LOOP;
END;
/   

程序已成功执行,但它根本不打印courseid,即使对于branchid B1,我有几个courseid

我哪里出错了?

提前致谢。

【问题讨论】:

  • 在执行 PL/SQL 块之前你有没有给SET SERVEROUT ON 命令

标签: database oracle plsql cursor


【解决方案1】:
set serveroutput on size unlimited

开始。如果需要,还要检查包装选项。
http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve040.htm#SQPUG099

【讨论】:

    【解决方案2】:

    你能试试这个,让我知道结果吗:)

    declare 
    
    cursor course_cur (v_branchId in varchar2) is
    select * from course where branchid = v_branchId;
    
    v_cursor course_cur%ROWTYPE;
    

    开始

    open course_cur ('B1');
    LOOP
        FETCH course_cur into v_cursor;
        exit when course_cur%NOTFOUND;
    
        dbms_output.put_line('The course id is  ' || v_cursor.courseid );
    
    END LOOP;
    

    结束;

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 2018-11-03
      • 1970-01-01
      • 2019-06-26
      • 2012-03-27
      • 2012-04-28
      • 1970-01-01
      相关资源
      最近更新 更多