例外
基本语法
Begin
--执行语句
Exception
--捕获异常
When 例外名称 then
--执行语句
When 例外名称 then
When others then
--其他
注:若有多个例外,就使用多个when then
案例:编写一个过程,可接收雇员的编号,并显示该雇员的姓名,如果编号不存在就会有异常。
Create or replace procedure pro1(v_in_enamenumber) is
V_ename emp.ename%type;
Begin
Select ename into v_ename from emp whereempno=v_in_empno;
Dbms_output.put_line(‘名字是’||v_ename)
Exception
When NO_DATA_FOUND then
Dbms_output.put_line(‘你输入的不存在!’);
When others then
Dbms_output.put_line(‘不明错误’);
End;
常用的预定义例外
NO_DATA_FOUND 对于select叙述没有传回任何值
TOO_MANY_ROWS 只允许传回一笔记录的select叙述结果却多于一笔
INVALID_CURSOR 使用非法的光标操作
VALUE_ERROR 出现数值,数据形态转换,取字符串或强制性的错误
INVALID_NUMBER 字符串到数值的转换失败
ZERO_DIVIDE 被零除
DUP_VAL_ON_INDEX 试图向具有唯一键值的索引中插入一个重复键值
CASE_NOT_FOUND 没有case条件匹配
CURSOR_NOT_OPEN 游标没有打开
数据库管理员和对数据库(方案,表)的备份和恢复
Sys和system用户的比较
1. sys用户对应方案存放的数据更重要system用户对应的方案存放次一级的数据
2. sys用户只能以as sysdba或者as sysoper登陆 , system可以用normal登陆
使用inport和export对数据库(方案,表)进行备份和恢复
导出表
(1) 导出自己表
基本语法:
Exp userid=用户名/密码@数据库实例名 tables=(表1,表2…)file=备份路径
注:备份文件后缀名一般是.dmp但不是必须的
比如导出scott.emp表
Exp userid=scott/tiger@orcl tables=(emp,dept) file=d:/emp.dmp
注:该命令必须在DOS下执行
(2) 导出其他人表
如果希望导出其它方案的表(或数据对象),则往往是system用户完成
基本语法:
Exp userid=用户名/密码@数据库实例名 tables=(方案名.表1,方案名.表2…) file=备份路径
(3) 导出表结构
Exp userid=用户名/密码@数据库实例名 tables=(表1,表2…)file=备份路径 rows=n
(4) 直接导出表
主要目的是提高导出速度
Exp userid=用户名/密码@数据库实例名 tables=(表1,表2…)file=备份路径 direct=y
导出方案
有时我们需要把一个方案,整体导出
基本语法:
Exp userid=用户名/密码@数据库实例名owner=用户名 file=备份路径
如果导出别的方案,一般使用system,语法:
Exp userid=用户名/密码@数据库实例名owner=(所有者1,所有者2…)file=备份路径
Oracle的卸载
1.先停止oracle的所有服务
2.使用universalinstaller来完成初步卸载
3.删除注册表:去百度
4.删除环境变量
删除环境变量classpath,path中含有oracle字样的值
5.最后在文件系统内删除oracle相关的文件及目录:删除系统盘符:\progrm files\oracle目录;删除ORACLE_BASE目录。
6.在默认情况下,oracle卸载并不会删除你的数据库文件,所以手动删除,如果删除出现错误,则重启机器后再删除
本文介绍Oracle数据库中的异常处理机制,包括基本语法和预定义异常,并提供了一个具体的应用案例。此外,还详细讲解了如何使用expdp和impdp命令进行数据库的备份与恢复操作。
345

被折叠的 条评论
为什么被折叠?



