1 DECLARE
2 invalidsno EXCEPTION;
3 sid VARCHAR2(10);
4 pname VARCHAR2(10);
5 BEGIN
6 sid:='&sss'; --这里如果直接写'07001'则通过
7 IF sid NOT IN ('07001','07002','07003') THEN
8 RAISE invalidsno;
9 ELSE
10 select sname into pname from student
11 where sno=sid;
12 DBMS_OUTPUT.PUT_LINE(sid||'的姓名是'|| pname);
13 END IF;
14 EXCEPTION
15 WHEN invalidsno THEN
16 DBMS_OUTPUT.PUT_LINE('无法识别该学生');
17 end;输入 sss 的值: 07002
原值 7: sid:='&sss';
新值 7: sid:='07002';
DECLARE
*
第 1 行出现错误:
ORA-01403: 未找到数据
ORA-06512: 在 line 11????怎会这样?11行有错吗,
2 invalidsno EXCEPTION;
3 sid VARCHAR2(10);
4 pname VARCHAR2(10);
5 BEGIN
6 sid:='&sss'; --这里如果直接写'07001'则通过
7 IF sid NOT IN ('07001','07002','07003') THEN
8 RAISE invalidsno;
9 ELSE
10 select sname into pname from student
11 where sno=sid;
12 DBMS_OUTPUT.PUT_LINE(sid||'的姓名是'|| pname);
13 END IF;
14 EXCEPTION
15 WHEN invalidsno THEN
16 DBMS_OUTPUT.PUT_LINE('无法识别该学生');
17 end;输入 sss 的值: 07002
原值 7: sid:='&sss';
新值 7: sid:='07002';
DECLARE
*
第 1 行出现错误:
ORA-01403: 未找到数据
ORA-06512: 在 line 11????怎会这样?11行有错吗,
2 invalidsno EXCEPTION;
3 sid VARCHAR2(10);
4 pname VARCHAR2(10);
5 BEGIN
6 sid:='&sss'; --这里如果直接写'07001'则通过
7 IF sid NOT IN ('07001','07002','07003') THEN
8 RAISE invalidsno;
9 ELSE
10 select sname into pname from student
11 where sno=sid;
12 DBMS_OUTPUT.PUT_LINE(sid||'的姓名是'|| pname);
13 END IF;
14 EXCEPTION
15 WHEN invalidsno THEN
16 DBMS_OUTPUT.PUT_LINE('无法识别该学生');
--加上下面的2句,你就知道了
WHEN no_data_found then
dbms_output.put_line('没找到你输入的sid');
17 end;