declare
emps varchar2(20); --该参数存储行列转换的结果
begin
--隐式游标不需要单独定义,for+参数+in(查询sql)+loop+执行语句+end loop即可实现
for employee in(select empno,ename,job,sal from emp where deptno='20')
loop
emps:=emps||employee.ename||','; --员工名字用,分隔,循环累加
dbms_output.put('员工编号:'||employee.empno);
dbms_output.put('员工姓名:'||employee.ename);
dbms_output.put('员工职位:'||employee.job);
dbms_output.put_line('员工薪金:'||employee.sal);
end loop;
dbms_output.put_line(trim(',' from emps)); --显示行列转换结果
----trim(',' from emps)去掉末尾逗号
--notfound、found及rowcount的使用
update emp set sal=sal+100 where deptno='20';
if sql%notfound then
dbms_output.put_line('未更新任何记录');
else
dbms_output.put_line('更新'||sql%rowcount||'条记录');
end if;
end;
结果显示:
员工编号:7369员工姓名:SMITH员工职位:CLERK员工薪金:800 员工编号:7566员工姓名:JONES员工职位:MANAGER员工薪金:2975 员工编号:7788员工姓名:SCOTT员工职位:ANALYST员工薪金:3000 员工编号:7876员工姓名:ADAMS员工职位:CLERK员工薪金:1100 员工编号:7902员工姓名:FORD员工职位:ANALYST员工薪金:3000 SMITH,JONES,SCOTT,ADAMS,FORD 更新5条记录 ?
|