1 select
pl\sql 中的select 语句有且仅有一条返回语句.
例 :
declare
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_ename,v_sal from emp where empno=7369;
dbms_output.put_line(v_ename||' ' ||v_sal);
end;
/
此处查询empno=7369 时的 ename和 sal, 并将他们赋给 v_ename和 v_sal .
-- 如果 empno= 7369 对应处没有ename 和 sal 或者对应多个ename 和 sal , 则此处会报错
select 与rowtype连用起到简化效果
declare
v_emp emp%rowtype;
begin
select * into v_emp from emp where empno=7369;
dbms_output.put_line(v_emp.ename);
end;
/
2 insert ,update ,delete
可以像oracle sql 中那样的方法直接使用
例:
declare
v_deptno dept.deptno%type :=50;
v_dname dept.dname%type :='aaaa';
v_loc dept.loc%type :='bj';
begin
insert into dept2 values (v_deptno,v_dname,v_loc);
commit;
end;
/
一种特殊的需求:
当执行某项操作后, 想要知道此操作使多少条记录收到了影响
declare
v_deptno emp2.deptno%type :=50;
v_count number;
begin
update emp2 set sal =sal/2 where deptno=v_deptno;
--select deptno into v_deptno from emp2 where empno = 7369;
-- select count(*) into v_count from emp2;
dbms_output.put_line(sql%rowcount || '条记录被影响');
commit;
end;
/
上面sql 是一个关键字, 代表着刚刚执行完的sql语句 , rowcount是他的一个属性, 代表有多少条记录受到影响.