Oracle数据库,PL/SQL编程笔录
PL/SQL:
是Oracle对SQL语言过程的程序化拓展
基本语法结构:
[declare ...声明变量] begin ...程序块 [Exception ...异常处理] end;
=====================
--异常部分
exception
when 异常类型 then
异常处理逻辑:一般把异常信息写入log表中
变量的语法
变量名 类型(长度)【类型可以直接写成表名.列名%type 或者记录型表名%rowtype】;
赋值: 变量名 := 变量值 (快速冲数据中提取数据 可以使用select 列名 into 变量名 from 表名 where 条件)
条件判断
if 条件1 then ...业务逻辑1 elsif 条件2 then ...业务逻辑2 else ...业务逻辑3 end if;
循环-无条件循环-条件循环-for循环
--无条件循环 loop ...循环语句 [exit when 条件] end loop; --这种会进入死循环,一般加上限制条件 exit when 条件 --条件循环 while 条件 loop ...循环语句 end loop; --for循环,也是比较常用的一种循环 for [] in ... loop ...循环语句 end loop;
游标
是系统为用户开设的一个数据缓冲区,存放SQL查询的一个结果集
--在声明区声明游标 cursor cur_name is sql语句 --使用游标语法 open cur_name loop fetch cur_name into 变量 exit cur_name%notfound end loop; cose cur_name --for循环可以简化,就不需要open cose fetch exit了哟
存储函数
一般再多表关联可以使用存储函数
create [or replace] function fn_name ( 参数名 参数类型, 参数名 参数类型 ...) is [变量声明] begin ...业务逻辑 return 结果变量
[excelption
...异常处理] end;
存储过程
create [or replace] procedure pr_name ( 参数名 类型, 参数名 类型, 参数名 类型) as ...变量声明 begin ...业务逻辑 [exception ...异常处理] end; --参数的三种模式 --IN 传入参数(默认) --OUT 传出参数,主要用于返回程序运行结果 --IN OUT 传入传出参数
--调用存储过程
方式一
begin
pr_name()
end;
方式二
call pr_name();
触发器
自动执行的“存储过程”,会被Oracle自动调用
用于数据确认,实施复杂的安全检查、做审计、跟踪表上的数据操作,数据的备份和同步
分类:前置触发器(before)\ 后置触发器(after)
create [or replace] trigger tr_name befare | after [delete][[or] insert][[or] update [of 列名]] --在做什么操作触发,列名可以用逗号隔开 on table_name [for each row][where 条件] --for each row行级触发器 where 返回false true declare ...声明 begin ...程序块 end;
伪记录变量 :old :new
触发语句 | :old | :new |
insert | 所有字段都是null | 将要插入的数据 |
update | 更新以前该行的值 | 更新后的值 |
delete | 删除以前该行的值 | 所有字段都是null |
原文地址:http://www.cnblogs.com/nguyenLu/p/16888384.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性