–1、select * into 必须只满足一条记录 没有记录或有多条记录会报异常
–只能取出一条 要取多条要用游标
–2、update和delete语句没有记录或多条记录满足都不会出现异常
3、
–select * into 如果没找到记录会出现异常
--/
DECLARE
v_emp emp%rowtype;
BEGIN
select * into v_emp from emp where empno = 9999;
dbms_output.put_line(v_emp.ename);
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('未找到记录');
END;
/
4、
–select * into 如果有多行记录满足也会出现异常
--/
DECLARE
v_emp emp%rowtype;
BEGIN
select * into v_emp from emp where job = 'MANAGER';
dbms_output.put_line(v_emp.ename);
EXCEPTION
WHEN TOO_MANY_ROWS THEN
dbms_output.put_line('超过一行返回');
END;
/
5、
–update语句没有满足条件的记录不会出现异常
--/
DECLARE
v_emp emp%rowtype;
BEGIN
update emp set ename = 'test1' where empno = 9999;
dbms_output.put_line('update无记录不会出现异常');
END;
/
6、
–update语句有多行记录满足条件也不会出现异常
--/
DECLARE
v_emp emp%rowtype;
BEGIN
update emp set sal = sal + 100 where job = 'SALESMAN';
dbms_output.put_line('update多行记录不会出现异常');
END;
/
7、
–delete语句没有满足条件的记录不会出现异常
--/
DECLARE
v_emp emp%rowtype;
BEGIN
delete from emp where empno = 9999;
dbms_output.put_line('delete无记录不会出现异常');
END;
/
8、
–delete语句有多行记录满足条件不会出现异常
--/
BEGIN
delete from emp where job = 'CLERK';
dbms_output.put_line('delete多行记录不会出现异常');
END;
/
技术博~留名!!
谢谢~