oracle 存储过程学习

第一个存储过程:

create or replace procedure p_Test is

begin

  dbms_output.put_line('第一个procedure');

end p_Test;

 

2/ 输入值,输出值,number类型可以给varchar类型赋值;

create or replace procedure p_Test(a in varchar2,b out varchar2) is

  num number := 99;

begin

  b := num;

  dbms_output.put_line(b);

end p_Test;

 

3/ if else 判断

create or replace procedure p_Test(a in varchar2,b out varchar2) is

  num number := 70;

begin

  if num > 99 then

    b := 'A';

  end if;

  if num <60 then

    b := 'C';

  else

    b := 'B';

  end if;

  dbms_output.put_line(b);

end p_Test; 

 

4/ for 循环

create or replace procedure p_Test(a in varchar2,b out varchar2) is

  num number := 0;

begin

  for countNum in 0..10 loop

    num := num+countNum;

  end loop;

  dbms_output.put_line(num);

end p_Test;

 

5/ 查询数据库表 返回值:

create or replace procedure p_Test(a in varchar2 ,b out varchar2) is

  code varchar(100);

  num number;

begin

  select count(1) into num from sys_res_tree t where t.res_tree_id=a;

  select t.tree_name into code from sys_res_tree t where t.res_tree_id=a;

  dbms_output.put_line(code);

  exception 

   WHEN NO_DATA_FOUND THEN 

   dbms_output.put_line('error');

end p_Test;

6/游标 遍历游标 

create or replace procedure p_Test(a in varchar2) is

  code varchar2(200);

  cursor cursor1 is

  select t.* from sys_res_tree t where t.p_res_tree_id=a;

begin

  for cursorresult in cursor1 loop

      code := code||cursorresult.tree_name;--点游标里的对象

  end loop;

  dbms_output.put_line(code);

   RETURN;--退出存储过程

end p_Test;

 

7/sys_refcursor游标使用方法

create or replace procedure p_Test is

  

 cu sys_refcursor;

 res_tree_id varchar2(30);

 tree_name varchar2(30);

 p_res_tree_id varchar2(30);

begin

    open cu for select t.res_tree_id,t.tree_name,t.p_res_tree_id from sys_res_tree t;

    loop

    fetch cu into res_tree_id,tree_name,p_res_tree_id;

    dbms_output.put_line(res_tree_id);

    dbms_output.put_line(tree_name);

    exit when cu%Notfound;

    end loop;

 

end p_Test;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值