📄 错误处理日志综合练习_建表和数据.txt
字号:
主要知识:
0:实际问题的分析解决:错误处理,日志处理的方法
1表格的建立,表的关联管理, pk,fk的定义设定。pk,fk约束下的dml
2:存储函数,过程的定义调用
3:view的使用,关联查询
4:存储函数,过程的使用
5:例外处理的机制,方法。内置例外,用户定义例外
------------------------------------错误信息,日志信息表 ,及其相应数据------------------
--错误信息表,用于显示提示给用户的各种错误提示。
create table err_msg(
code number(3,0) primary key,
message varchar2(50),
leixing varchar2(2),--错误类型号
constraint
fk_err foreign key(leixing) references err_leixing(leixing));
--错误类型表,存储error所属的类型,如用户自定义类型,系统内置类型
create table err_leixing(
leixing varchar2(2) primary key,--错误类型号
shuoming varchar2(50));
--插入错误类型表(父表)
insert into err_leixing values('01','用户定义错误');
insert into err_leixing values('02','系统内置错误');
--插入错误信息表.
insert into err_msg values(1,'没有对应的雇员编号,重新输入雇员编号','01');
--以后用于plsql的exception,或找雇员的问题
insert into err_msg values(2,'雇员必须有联系电话,输入雇员联系电话','01');
--trigger,sp,exception
insert into err_msg values(3,'此雇员目前没有销售业绩','01');
--以后用于plsql的exception,或找雇员的问题
--100号以后为系统错误
insert into err_msg values(101,'被除数不可以为0','02');
--日志信息表,比如发生的错误----------------------------------------------------------
--认为同一系统同一用户在同一时间发生错误的机会很少
--方法1:使用fk
create table log_msg (
system_name varchar2(50), --系统名称
time date, --纪录日志的时间
err_code number(3,0), --错误号.log还可能用于处理其它问题.此时err_code 置null
user_name varchar2(10), --当前用户
beizhu varchar2(50), --备注
primary key (system_name,time,user_name),
constraint fk_log
foreign key (err_code) references err_msg(code));
--在log_msg中使用fk于err_msg通过err_cokd=code相限制。
--fk约束,允许子表在关联字段输入null!
--方法2:不使用fk
create table log_msg (
system_name varchar2(50), --系统名称
time date, --纪录日志的时间
err_code number(3,0), --错误号.log还可能用于处理其它问题.此时err_code 置null
user_name varchar2(10), --当前用户
beizhu varchar2(50), --备注
primary key (system_name,time,user_name));
--不用在err_code与err_msg (code)之间建立建立fk.因为log还可能用于处理其它问题
--此时err_code 置null
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -