标签:查询 集中 resultset 通过 变量 result 没有 created 行数据
1.游标
1.1什么是游标
用于临时存储一个查询返回的多行数据(结果集,类似于Java的JDBC连接返回 的 ResultSet集合),通过遍历游标,可以逐行访问处理该结果的数据。
游标的使用方式:声明--->打开-->读取--->关闭
1.2语法
游标声明:
CURSOR 游标名[(数据列表)] IS 查询语句;
游标的打开:
OPEN游标名;
游标的取值:
FETCH 游标名 INTO 变量列表;
游标的关闭:
CLOSE 游标名;
1.3 游标的属性
%FOUND 变量最后从游标中获取记录的时候,在结果集中找到了记录。
%NOTFOUNT 变量最后从游标中获取记录的时候,在结果集中没有找到记录。
%ROWCOUNT 当前时刻已经从游标中获取的记录数量。
%ISOPEN 当前时刻已经从游标中获取的记录数量。
示例1(不带参数的游标):使用游标查询emp表中所有员工的姓名和工资,并将其依次打印出来
1 -- Created on 2018/8/23 by MENGMENG.CHEN 2 --使用游标查询emp表中所有员工的姓名和工资,并将其依次打印出来 3 declare 4 -- 声明游标 5 CURSOR c_emp IS SELECT ENAME,SAL FROM EMP; 6 --声明变量接收游标中的数据 7 v_name emp.ename%TYPE; 8 v_sal emp.sal%TYPE; 9 begin 10 --打开游标 11 OPEN c_emp; 12 13 --遍历游标 14 LOOP 15 --获取游标中的数据,如果有的话就赋值给变量 16 FETCH c_emp INTO v_name,v_sal; 17 EXIT WHEN c_emp%NOTFOUND; 18 DBMS_OUTPUT.put_line(‘姓名:‘ || v_name || ‘薪水:‘ || V_SAL); 19 END LOOP; 20 21 --退出游标 22 23 end;
运行结果:
示例2(带参数的游标):使用游标查询emp表中员工号=7839的员工姓名和工资,并将其依次打印出来
1 -- Created on 2018/8/23 by MENGMENG.CHEN 2 --使用游标查询emp表中员工号=7839的姓名和工资,并将其依次打印出来 3 declare 4 -- 声明游标 5 CURSOR c_emp(v_empno emp.empno%TYPE) IS SELECT ENAME,SAL FROM EMP WHERE empno = v_empno; 6 --声明变量接收游标中的数据 7 v_name emp.ename%TYPE; 8 v_sal emp.sal%TYPE; 9 begin 10 --打开游标 11 OPEN c_emp(7839); 12 13 --遍历游标 14 LOOP 15 --获取游标中的数据,如果有的话就赋值给变量 16 FETCH c_emp INTO v_name,v_sal; 17 EXIT WHEN c_emp%NOTFOUND; 18 DBMS_OUTPUT.put_line(‘姓名:‘ || v_name || ‘薪水:‘ || V_SAL); 19 END LOOP; 20 21 --退出游标 22 23 end;
运行结果:
标签:查询 集中 resultset 通过 变量 result 没有 created 行数据
原文地址:https://www.cnblogs.com/ChenMM/p/9525369.html