Plsql 循环的Pl/SQL过程游标

Plsql 循环的Pl/SQL过程游标,plsql,oracle11g,toad,Plsql,Oracle11g,Toad,我是PL/SQL新手,正在试验游标。我希望验证一个插入过程,所以我编写了另一个过程来验证 CREATE OR REPLACE PROCEDURE verify_insert IS CURSOR map_cur IS SELECT Page_ID_NBR, Page_Type, Page_Dcpn FROM SSC_Page_Map; map_rec map_cur%ROWTYPE; BEGIN OPEN map_cur; FOR map_r

我是PL/SQL新手,正在试验游标。我希望验证一个插入过程,所以我编写了另一个过程来验证

CREATE OR REPLACE PROCEDURE verify_insert

IS

   CURSOR map_cur IS

      SELECT Page_ID_NBR, Page_Type, Page_Dcpn FROM SSC_Page_Map;

      map_rec map_cur%ROWTYPE;

BEGIN

   OPEN map_cur;

   FOR map_rec in map_cur

   LOOP

      DBMS_OUTPUT.PUT_LINE('ID: ' || map_cur.Page_ID_NBR || ' ' || 'Type' ||  map_cur.Page_Type || ' ' || 'Description' || map_cur.Page_Dcpn);   

   END LOOP;

   CLOSE map_cur;

END;

SHOW ERRORS PROCEDURE verify_insert;
我收到以下信息

[Warning] ORA-24344: success with compilation error
19/44   PLS-00225: subprogram or cursor 'MAP_CUR' reference is out of scope
19/5    PL/SQL: Statement ignored
(47: 0): Warning: compiled but with compilation errors
我也看到了

Errors for PROCEDURE VERIFY_INSERT

LINE/COL ERROR                                                            
-------- -----------------------------------------------------------------
19/44    PLS-00225: subprogram or cursor 'MAP_CUR' reference is out of sco


19/5     PL/SQL: Statement ignored                                        

正如我所写的,我是一名新手,试图将来自
oraclepl/SQL编程(Feuerstein)
和网络的PL/SQL知识拼凑在一起。集合在一起,但速度不如我所希望的快。

您的循环正在从游标中提取一行到记录类型中。在循环内部,您希望从记录类型中读取数据。在
dbms\u output.put\u line
调用中,您希望引用的是记录,而不是光标

DBMS_OUTPUT.PUT_LINE('ID: ' || map_rec.Page_ID_NBR || 
              ' ' || 'Type' || map_rec.Page_Type || 
              ' ' || 'Description' || map_rec.Page_Dcpn);  

非常感谢。我只是从网上抄袭了一些不好的例子。你能给我指一个很棒的网站吗?在那里我可以快速增加我的知识,避免有“陷阱”的捕猎和啄食方法?非常感谢。