------------------------------------游标--------------------------------------------使用for循环打印游标declareCURSOR mycursor IS SELECT * FROM person;begin for cur in mycursor --cur 是别名 LOOP DBMS_OUTPUT.PUT_LINE(cur.name); --别名.列名 END LOOP; if mycursor%Isopen then --判断游标是否打开 DBMS_OUTPUT.PUT_LINE('游标已经打开'); else DBMS_OUTPUT.PUT_LINE('游标尚未打开'); end if;end;declare------------------------------------隐式游标---------------------------------------------无需声明游标,打开游标,使用fetch进行显式操作begin for cur in (SELECT * FROM person) -- 处理的记录集一定要有括号,cur 是随便定义的 LOOP DBMS_OUTPUT.PUT_LINE(cur.name); END LOOP;end;------------------------------------存储过程----------------------------------------创建存储过程CREATE OR REPLACE PROCEDURE proc --proc 为存储过程名称( lx_age IN NUMBER, --lx_age 为向存储过程传的参数 out_name out varchar2 -- 定义返回的值) ISlx_name varchar2(32); --定义变量BEGIN select name into lx_name from person where age=lx_age; out_name:=lx_name; DBMS_OUTPUT.PUT_LINE('根据age查name='||lx_name); END proc;---------------------------------执行存储过程--------------------------------declarere_name varchar2(48);begin proc('12',re_name); --'11' 是传给存储过程的参数,使用re_name 来接收返回值 DBMS_OUTPUT.PUT_LINE('返回值='||re_name); end;
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/oracle-develop/177537.html