存储过程与事务、触发器

——plsql 命名规则

变量    v——变量名

常量   c_常量名

游标    游标名_cursor    (处理多条记录)

存储过程 与 事务(提交、回滚)

事务特性:ACID(一致性、原子性、隔离性、持久性)

存储过程概念:(Stored Procedure)将完成某个功能的sql语句集,存储到数据库中,在任何地方都可以调用它。 实现代码重用

创建存储过程:

Create  or replace  procedure 存储过程名

Is

声明部分

Begin

执行部分

exception

异常处理部分

end;

例:

Create or replace procedure pro_test

Is

v_inumber(5):=100;

Begin

dbms_output.put_line(v_i+123);

End;

调用存储过程

1:

call pro_test();

2:

Declare

Begin

pro_test;

End;

3:

命令行窗口执行

输入Set serveroutput on;

输入exec pro_test();回车

创建有输入参数的存储过程

Create  or replace  procedure  pro_inparam(param_i number 或varchar2())  参数不用指定长度

Is

Begin

dbms_output.put_line(‘输入的参数是:’||param_i);

End;

Call pro_inprarm(111);

存储过程

  • -call pro_test();

Create or replace  procedure pro_getCurrDate(patam_i in number,result_j out varchar2)

Is

Begin

dbms_output.put_line(sysdate||uid);

  • -exception

End;

Call pro_getCurrDate();

  • -exec

Select  sys date from dual;

事务

- -oracle 默认  手动提交

  • -insert update delete   手动提交
  • -隐式提交   create table alter table drop

- -自动提交  set  autocommit on;   client_sql  plus

Commit rollback

Sevepoint  设置回滚点

Declare

Begin

Insert  into rj192(id, name,age,salary)values(seq_rj192.nextval,’张三‘,20,5000);

Savepoint yyh;

Insert  into rj192(id, name,age,salary)values(seq_rj192.nextval,’李四‘,20,6000);

Rollback to yyh;

  • -Commit;

End;

触发器   trigger

组成:触发时间、触发对象、触发对象、触发频率、触发操作

创建触发器

Create or replace trigger insert_rj192_trigger

  • -触发时间  触发事件  触发对象
  • After insert on rj192
  • -触发频率  触发操作执行次数

For each row   //指受影响的行数有多少就执行多少次

Begin

  • -触发后的操作

dbms_output.put_line(456);

  • -exception

End;

删除触发器

  • -:oid  :new
  • Create or replace trigger update_rj192_trigger
  • After update on rj192
  • For each row   - -:old  :new  必须在行级触发器下
  • Begin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值