when I make this query in sql*plus:
sql>
select describe from categories where name=courses;
I
get the following
data:
NAME
DESCRIBE
------------------------------
courses
计算机系
courses
数学系
courses
英语系
courses
物理系
Now in my preject,I need to use cursor like
this:
CREATE OR REPLACE PROCEDURE test(p_name
VARCHAR2) IS
CURSOR categories_cur
(p_str VARCHAR2) IS SELECT describe FROM categories
WHERE name=p_str ;
v_describe categories.describe%TYPE;
BEGIN
OPEN
categories_cur(p_name);
LOOP
FETCH
categories_cur
INTOv_describe;
EXIT WHEN
categories_cur%NOTFOUND;
str:=str
||','||v_name;
DBMS_OUTPUT.PUT_LINE(v_long_name);
END
LOOP;
END test;
The
procedure 'test' is compiled successfully,
then I creat a new
test script in pl/sql developer, the developing tools ,but there is
no related result printed!
when I run the
procedure step by step,I found when it come to the line' EXIT WHEN
categories_cur%NOTFOUND;'
the next step is line'END
LOOP' which indicate no records in categories_cur,who can tell me
why?
Thanks in
advance!