——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