44
oracle的例外处理。
begin
exception:
--捕获异常
when 例外异常 then
--执行语句
when 例外名 then
when others then
end;
案例:编写一个过程,可接收雇员的编号,并显示此雇员的姓名,如果编号不存在就会有
create procedure pro1(v_in_empno number) is
v_ename emp.ename%type;
begin
select ename into v_ename from emp where ename=v_in_empno;
dbms_output.put_line('名字是'||v_name);
end;
上过程中,当输入一个不存在的雇员号,则出异常,这是我们可以捕获 异常
捕获异常有二个目的:1.给用户提示更加明确;2.可能要对异常进行业务处理。
create procedure pro1(v_in_empno number) is
v_ename emp.ename%type;
begin
select ename into v_ename from emp where ename=v_in_empno;
dbms_output.put_line('名字是'||v_name);
exception
when no_data_found then
dbms_output.put_line('朋友,你输入的编号不在');
when others then
dbms_output.put_line('不明错误');
end;
具体的值,要在帮助中查的。
例外的几个常见案例
too_many_rows
2.
如何处理多个例外
多个 when
3.数据库的备份与恢复
管理数据库一般用
sys最高是超级管理员,存放的数据更重要
system普通管理员,数据次之
sys不能以normal方式来登录,只能用sysdba,sys
system可能以noremal登录,就是一个普通的dba
45
物理备份是冷备份,可在数据加运行下进行
一个exe文件,
导出用export
导入用import
分,导出表,导出方案,导出数据库
导出自己的表
exp userid
比如scott.emp表
exp userid=用户名/密码@数据库实例名 tables=(表1,表2) file=备份路径
exp userid=scott/m123@hsporcl tables=(emp.dept) file=d:/ss.emp
注上述语句,只能在cmd下执行
若要导出其他方案用户的表,则往往是system用户来做
导出表结构
-----------------
最后加上 rows=n(在路径后,行=no)
直接导出表,主要是提高导出速度。
最后加上 direct=y(在路径后,加上)
导出方案
exp 用户名/密码@数据库实例名 owner=scott file=d:/wc.emp
如果要导出他人之方案