/* Formatted on 2007/07/03 09:50 (Formatter Plus v4.8.6) */
SET SERVEROUT ONDECLARE
TYPE cur IS REF CURSOR
RETURN category_header%ROWTYPE; mycur cur;
crow category_header%ROWTYPE;
BEGIN
OPEN mycur FOR
SELECT *
FROM category_header; FOR crow IN mycur
LOOP
DBMS_OUTPUT.put_line (crow.cat_code || '' || crow.cat_desc);
END LOOP; CLOSE mycur;
END;
/我在运行这段程序里,for循环那里老是出错,说mycur不是过程或没有定义.这是为什么啊,我把游标类型改为静态的就行.这是为什么呢.
是不是静态游标和动态游标的区别啊.
SET SERVEROUT ONDECLARE
TYPE cur IS REF CURSOR
RETURN category_header%ROWTYPE; mycur cur;
crow category_header%ROWTYPE;
BEGIN
OPEN mycur FOR
SELECT *
FROM category_header; FOR crow IN mycur
LOOP
DBMS_OUTPUT.put_line (crow.cat_code || '' || crow.cat_desc);
END LOOP; CLOSE mycur;
END;
/我在运行这段程序里,for循环那里老是出错,说mycur不是过程或没有定义.这是为什么啊,我把游标类型改为静态的就行.这是为什么呢.
是不是静态游标和动态游标的区别啊.
cat_desc VARCHAR2(10)
)
表代码
LOOP
DBMS_OUTPUT.put_line (crow.cat_code || '' || crow.cat_desc);
END LOOP;
需改为
fot 0=0
loop
fetch mycur into crow
exit when mycur%NOTFOUND;
DBMS_OUTPUT.put_line (crow.cat_code || '' || crow.cat_desc);
END LOOP;
或者不用定义动态游标,和行变量,直接这样写
FOR crow IN (SELECT * FROM category_header)
LOOP
DBMS_OUTPUT.put_line (crow.cat_code || '' || crow.cat_desc);
END LOOP;