Oracle最后部分复习内容

<strong>子程序:
存储过程:
   有名称的PLSQL块,称之为存储过程
语法:
create or replace procedure p_emp_findsal 过程名(p_type 

in/out/in out p_name)

as

begin

exception

end end p_emp_findsal;


如何使用存储过程
1.创建存储过程
2.测试存储过程

测试:
create or replace procedure p_emp_find(p_empno NUMBER) 
IS

v_sal NUMBER(8,2);

begin
  SELECT sal INTO v_sal FROM emp WHERE empno=p_empno;
  dbms_output.put_line(v_sal);
end p_emp_find;



create or replace procedure p_emp_find(p_empno NUMBER) 
IS

v_sal   emp.empno%TYPE;
v_ename emp.ename%TYPE;-----------列类型
v_job   emp.job%TYPE;
v_mgr   emp.mgr%TYPE;



--select into 只能存储一条存储过程
--系统自定义三个预定义异常
begin
  SELECT sal,ename,job,mgr  INTO v_sal,v_ename,v_job,v_mgr FROM 

emp WHERE empno=p_empno;
  dbms_output.put_line(v_sal);
    dbms_output.put_line(v_ename);
       dbms_output.put_line(v_job);
  dbms_output.put_line(v_mgr);
  
  EXCEPTION 
    WHEN no_data_found THEN
      dbms_output.put_line('0000');
      WHEN too_many_rows THEN
        dbms_output.put_line('11111');
        WHEN OTHERS THEN 
          dbms_output.put_line('11111111');
end p_emp_find;



函数:
CREATE OR REPLACE FUNCTION f_emp_total_sal(p_deptno IN 

emp.deptno%TYPE)
 RETURN NUMBER
AS 
v_sum NUMBER(8,2);
BEGIN
  SELECT SUM(sal) INTO v_sum FROM emp WHERE deptno=p_deptno;
--  dbms_output.put_line(v_sum);不要输出
RETURN v_sum;
  END f_emp_total_sal;

存储过程和函数的区别
1.存储过程和函数的区别
存储过程没有返回值,而函数有返回值
存储过程和函数都是Oracle的对象
存储过程和函数因为被提前编译且存储在服务器,所以安全,执行速度快
存储过程和函数是一个完整的事物单元。要么全部执行,要么都不成功


触发器
作用:审计,数据完整性,安全
定义:是数据库的一个对象
分类:系统触发器【作用在oracle系统上,例如,开机触发,关机前触发

】
 DML触发器【insert ,delete,update,作用在表上】
替代触发器【作用在仕途上】


语法:
create or replace trigger tr_emp_opater
-before-insert or delete or update on 表
 
as

declare
--定义局部变量
begin
--写业务[不允许写事务性语句,例如rollback,commit savepoint
end tr_emp_update;






闪回:select * from  emp as of timestamp  sysdate -5/1440


插入:select * from emp t insert into emp;




4.数据的备份和还原:
1.delete操作单未commit的数据操作
  delete from emp;
rollback;
  
2.delete操作单已经commit的数据怎么恢复
insert into emp
select * from emp as of timestamp sysdate-d/1440;
commit

3.drop操作语句怎么恢复
flashback table table to before drop;

注意:这样删除的数据无法闪回
drop table emp purge


4.truncate 删除怎么恢复
exp(导出)
imp(导入)

</strong>



总复习:

1.Oracle的安装和卸载

2.Oracle客户端服务端的网络配置

3.SQL基础语法

4.Oracle的对象

5.PLSQL的开发

6。Oracle的数据库设计【powerdesigner】

7.数据库备份和还原


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值