DECLARE
cursor employee_cursor is
select emp_id, emp_name from employees;
id_num employees.emp_id%TYPE;
name employees.emp_name%TYPE;
BEGIN
open employee_cursor;
loop
fetch employee_cursor into id_num, name;
end loop;
close employee_cursor;
END1,我想知道,如果employees表里有多个行,那么游标employee_cursor是怎么指向的?指向第一行吗?
2,fetch employee_cursor into id_num, name;
这个语句是取出表中相应类型的数据赋值给id_num, name,那么这个表中那么多行,到底是取出哪一行的数据赋值给那两个变量呢?
cursor employee_cursor is
select emp_id, emp_name from employees;
id_num employees.emp_id%TYPE;
name employees.emp_name%TYPE;
BEGIN
open employee_cursor;
loop
fetch employee_cursor into id_num, name;
end loop;
close employee_cursor;
END1,我想知道,如果employees表里有多个行,那么游标employee_cursor是怎么指向的?指向第一行吗?
2,fetch employee_cursor into id_num, name;
这个语句是取出表中相应类型的数据赋值给id_num, name,那么这个表中那么多行,到底是取出哪一行的数据赋值给那两个变量呢?
解决方案 »
- 急!!!ORACLE数据库DBF数据文件恢复问题!
- pl/sql中执行动态执行ddl,没有权限
- 因为执行了错误的SQL语句,TEMP01.DBF文件一下子增大了很多G,把磁盘空间都占用了。怎么办呢?
- 为什么我装完ORACLE817后,内存占用达到1G多呢?我该怎么办呢?好急
- Oracle 8i的最新补丁集是多少
- redhat as 4.0下的oracle9.2.0.4,发现在点用内存很多,有什么办法降低内存占用
- 怎样从一个已有的数据表生成表结构的SQL脚本?
- 有没有比这更简便的方法,实现同一效果。
- 编译出错,请高手指点迷津(Pro C)?
- 指定列字段去重,其它列都要显示
- 如何查看oracle临时表空间当前使用了多少空间的大小?
- oracle恢复问题
cursor employee_cursor is
select emp_id, emp_name from employees;
id_num employees.emp_id%TYPE;
name employees.emp_name%TYPE;
BEGIN
open employee_cursor;
loop
fetch employee_cursor
into id_num, name;
EXIT WHEN employee_cursor%NOTFOUND;
end loop;
close employee_cursor;
END
1.fetch一次指向一行,再fetch,指向下一行,如果EMPLOYEE_CURSOR%NOTFOUND,退出。代码写的有问题,修改下:
DECLARE
CURSOR EMPLOYEE_CURSOR IS
SELECT EMP_ID, EMP_NAME FROM EMPLOYEES;
ID_NUM EMPLOYEES.EMP_ID%TYPE;
NAME EMPLOYEES.EMP_NAME%TYPE;
BEGIN
OPEN EMPLOYEE_CURSOR;
LOOP
FETCH EMPLOYEE_CURSOR
INTO ID_NUM, NAME;
EXIT WHEN EMPLOYEE_CURSOR%NOTFOUND;
END LOOP;
CLOSE EMPLOYEE_CURSOR;
END;
/
DECLARE
CURSOR EMPLOYEE_CURSOR IS
SELECT EMP_ID, EMP_NAME FROM EMPLOYEES;
ID_NUM EMPLOYEES.EMP_ID%TYPE;
NAME EMPLOYEES.EMP_NAME%TYPE;
BEGIN
OPEN EMPLOYEE_CURSOR;
LOOP
FETCH EMPLOYEE_CURSOR
INTO ID_NUM, NAME;
EXIT WHEN EMPLOYEE_CURSOR%NOTFOUND;
END LOOP;
CLOSE EMPLOYEE_CURSOR;
END;