1.存储一行一列
declare
v_sum number(4);
begin
select count(*) into v_sum from emp; --结果返回一个值,只需使用一个变量
dbms_output.put_line(v_sum);
end;
/
2.存储一行多列
a. 使用多个变量存储一行
declare
v_sal number(5);
v_ename varchar(20);
begin
select ename,sal into v_ename,v_sal from emp where empno=7369; --限定返回一行
dbms_output.put_line(v_ename||','||v_sal);
end;
b.使用%rowtype
declare
r_emp emp%rowtype;
begin
select * into r_emp from emp where empno=7369;
dbms_output.put_line(r_emp.ename);
dbms_output.put_line(r_emp.sal);
end;
c.记录类型
declare
type r is record(
sal number(5),
ename varchar(10)
);
emp_record r;
begin
select sal,ename into emp_record from emp where empno=7369;
dbms_output.put_line(emp_record.sal);
dbms_output.put_line(emp_record.ename);
end;
3.存储多行
使用游标
3.1隐式游标
3.2显示游标
步聚:声明游标-->打开游标-->检索数据-->关闭游标
a.使用带参数游标,把部门号是10的所有员工信息打印出来
declare
cursor cursor_emp(v_deptno in number:=20)
is select * from emp
where deptno=v_deptno;
emp_record emp%rowtype;
begin
open cursor_emp(10);
loop
fetch cursor_emp into emp_record;
exit when cursor_emp%notfound;
dbms_output.put(emp_record.ename||',');
dbms_output.put_line(emp_record.sal);
end loop;
close cursor_emp;
end;
b.游标for循环
使用for循环依次读取结果集中的行数据
declare
cursor cursor_emp is
select * from emp where deptno=10;
begin
for r in cursor_emp loop
dbms_output.put_line(r.ename);
dbms_output.put_line(r.sal);
end loop;
end;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26937943/viewspace-762748/
,如需转载,请注明出处,否则将追究法律责任。