oracle 储存过程使用笔记

这篇博客主要介绍了Oracle存储过程的基本概念和使用,包括包头、包体、过程和方法的解释,以及如何定义变量、赋值、循环、输出、拼接、判断、执行SQL和调试。此外,还详细讲解了静态游标和动态游标的定义及应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有需求做oracle数据处理,再次用到储存过程,特意做一次关于对储存过程总结!

1.名称说明以及本人理解的解释

包头、包体、方法、过程

这四个就从上到下依次是方法、过程、包头、包体。

包头、包体,是方法的一共汇总包,类似java 的package 和里面的java程序,也可以理解为java的接口和接口的实现。包头定义了一堆方法,包体来实现。

方式:就是一组程序,只是有显示的返回类型;

过程:也是一组程序,没有显示的返回类型;

2.必须掌握知识

 2.1定义变量:(v_dept,v_sum 变量,够用了)

v_dept varchar2(100);

v_sum number;

  2.2赋值语句:

v_dept :=  '部门';

v_sum :=  10;

 2.3循环语句 

2.3.1 for循环(一般用这个)

   for row in data loop  (将data每条数据 放到row 中,游标获得data,下面说)

        循环体row.dept
   end loop; 

2.3.2  fetch 循环(动态游标使用这个)(引用链接https://www.cnblogs.com/taony/p/5670820.html

 --Fetch 循环  
  OPEN C_EMP;--必须要明确的打开和关闭游标  
  LOOP  
    FETCH C_EMP  
      INTO C_ROW;  
    EXIT WHEN C_EMP%NOTFOUND;  
    DBMS_OUTPUT.PUT_LINE(C_ROW.todo_id || '++' );  
  END LOOP;  
  CLOSE C_EMP;

2.3.输出语句,类似java 的控制台输出语句 system.out.print

dbms_output.put_line(v_dept);

2.4.拼接语句,和oracle sql 一样

v_dept ||‘是’|| v_dept ||‘个            结果:部门是10个;

2.5.判断语句(够用了)

if dept=10 then

 do something

end if;

2.6.执行拼接好的sql 语句方法

 sql := 'update dept表 t set t.flag =''9'' where t.recid = ''' ||recid||'''';
 execute immediate sql;
 commit;

2.7.调试:plsql new file=》test window 打断点

2.8 注释:

-- 注释内容

/********注释内容*********/

2.9 游标(cursor ) 定义(单独说,有点复杂)

一般分两种,静态游标和动态游标

2.9.1 静态游标定义:获得游标数据的sql 是不变的,执行一次,可以写死。

cursor c1 is select table_name from user_tables;

使用:

for row in cursor loop 

        循环体row.dept
   end loop; 

2.9.2 动态游标:获得游标数据的sql 是动态的,随着条件改变(引用链:https://blog.youkuaiyun.com/sevenkj/article/details/49661459

定义:my_dept_rec  是动态游标

type cur is ref cursor;

my_dept_rec cur;

应用:
open my_dept_rec for str ;   
  loop   
      --获取游标数据到字符串中
      fetch my_dept_rec into strJLDH;    
      exit when my_dept_rec%notfound;   
      循环体
  end loop;   
  --关闭游标
  close my_dept_rec
 

3.实例(很多,不写了)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值