当前位置: 代码迷 >> SQL >> oracle 之pl/sql 基础学习(2)
  详细解决方案

oracle 之pl/sql 基础学习(2)

热度:90   发布时间:2016-05-05 13:45:03.0
oracle 之pl/sql 基础学习(二)
------------------------------------游标--------------------------------------------使用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
  相关解决方案