该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一旦执行,无限请求输入,怎么直接结束匿名块的执行而不是ctrl+c退出sqlplus
Declare
v_id teacher.teacher_id%Type:='&teacher_id';
v_name teacher.tname%Type:='&tname';
v_sex teacher.tsex%Type:='&tsex';
v_birth teacher.tbirth%Type:='&tbirth';
v_educ teacher.educ%Type:='&educ';
v_profess teacher.profess%Type:='&profess';
v_deptid teacher.dept_id%Type:='&dept_id';
v_deptid2 teacher.dept_id%Type
ex_null Exception;
ex_deptid Exception;
Begin
if v_id IS null Then
Raise ex_null;
END IF
--查询结果为空的情况
select dept_id into v_deptid2 from dept where dept_id=v_deptid;
if v_deptid2 Is null Then
Raise ex_deptid;
END IF
if v_sex!='男' || v_sex!='女' Then
dbms_output.putline('性别必须是 男/女');
END IF
Insert into teacher(teacher_id,tname,tsex,tbirth,educ,profess,dept_id)
values(v_id,v_name,v_sex,v_birth,v_educ,v_profess,v_deptid);
Exception
when ex_null Then
DBMS_output.putline('teacher_id不能为空');;
when ex_deptid Then
dbms_output.putline('必须输入存在的部门编号 '||v_deptid2);
when Dup_Val_On_Index Then
dbms_output.putline('teacher_id已经存在');
END