【发布时间】:2016-10-03 15:34:44
【问题描述】:
我不确定为什么我的第二个 DBMS_OUTPUT.OUT_LINE 没有打印出我的列表?我收到匿名块已完成,标题(等级:婴儿姓名:)打印出来,但我请求的列表没有。这是我的代码:
SET SERVEROUTPUT ON
SET VERIFY OFF;
DECLARE
V_SEARCH VARCHAR2(20):= '&SV_SEARCH';
V_ROWS NUMBER(11) := '&SV_ROWS';
CURSOR C_NAME IS
SELECT RANK() OVER (ORDER BY CODE DESC)
FROM (SELECT * FROM "NAME_LIST" WHERE "NAMES" LIKE (V_SEARCH)
ORDER BY CODE DESC)WHERE ROWNUM = V_ROWS;
R_NAME C_NAME%ROWTYPE;
BEGIN
OPEN C_NAME;
DBMS_OUTPUT.PUT_LINE('RANK: BABY NAMES:');
LOOP
FETCH C_NAME INTO R_NAME;
EXIT WHEN C_NAME%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(' '||V_ROWS||' '||V_SEARCH);
END LOOP;
CLOSE C_NAME;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error');
END;
结果我收到了这个作为我的输出: 匿名块完成 排名:宝贝名字:
【问题讨论】:
-
也许你的光标没有返回任何行?
标签: plsql dbms-output