--select * from student;--delete from student where sid>=4;
--delete from "SYSTEM"."STUDENT";
--SELECT * FROM "SYSTEM"."STUDENT";
/*
--插入30条记录
SET SERVEROUTPUT ON
DECLARE
I INT:=0;
begin
FOR I IN 1..30 LOOP
INSERT INTO "SYSTEM"."STUDENT" (SID,SNAME,SDATE) VALUES(I,'FRJ'||TO_CHAR(I),SYSDATE);
END LOOP;
commit;
end;
*/
--采用游标查询出sid>2的纪录的 sid;
declare
tempsid system.student.sid%type; --定义一个变量,它的数据类型与student表中的sid类型相同
cursor myCursor --定义游标
is --游标所执行的操作
select * from system.student
where sid>2;
selCursorRecord myCursor%rowtype; --游标实例化
begin
tempsid:=0;
open myCursor; --打开游标
/*if myCursor%isopen then --测试游标是否打开,打开则返回真,如果没有打开游标就使用fetch语句将提示错误.
fetch myCursor into selCursorRecord;
dbms_output.put_line(to_char(' sid: '|| selCursorRecord.sid));
else
dbms_output.put_line(to_char(' 游标没有打开.'));
end if;
*/
/*
while myCursor%isopen loop
fetch myCursor into selCursorRecord;
dbms_output.put_line(to_char(' sid: '|| selCursorRecord.sid));
end loop;
--dbms_output.put_line(' 游标中所有的数据行数.'|| to_char(myCursor%rowcount));
*/
loop --这一种循环结构比上种更为准确
tempsid:=tempsid+1;
exit when myCursor%notfound ;
fetch myCursor into selCursorRecord;
dbms_output.put_line(to_char(' sid: '|| selCursorRecord.sid || ' rows ' ||tempsid));
end loop;
dbms_output.put_line(' 游标中所有的数据行数.'|| to_char(myCursor%rowcount)) ; --获取游标中的数据行数
close myCursor; --关闭游标
end;
Oracle 游标
最新推荐文章于 2023-01-31 17:18:05 发布