Oracle 静态 动态游标的使用
2014-07-17 00:00
120 查看
declare
ida varchar(200);
a varchar(200);
b varchar(200);
c varchar(200);
i number(20);
err number(20) default 0;
type cs is ref cursor return test%rowtype; --定义强类型游标
mycursor cs; -- 声明动态强类型游标变量
m test%rowtype;
CURSOR mycursor2 is select * from test;
-- test1Cursor Cursor for select * from test;
begin
ida:= '13140';
i := 13139;
-- select gp.rugr_lruname into a from R_T_RUGROUP gp where gp.rugr_id in (select sp.rumesarearugr_id from R_S_RuMembership sp where sp.saru_id = i and sp.rumes_state = 1);
-- select gp.rugr_lruname into b from R_T_RUGROUP gp where gp.rugr_id in (select sp.rumescityrugr_id from R_S_RuMembership sp where sp.saru_id = i and sp.rumes_state = 1);
-- select gp.rugr_lruname into c from R_T_RUGROUP gp where gp.rugr_id in (select sp.rumesprovincerugr_id from R_S_RuMembership sp where sp.saru_id = i and sp.rumes_state = 1);
err:=0;
while i<13144 loop
insertCard(i,'aaaa',err);
if err != 0 then
dbms_output.put_line('inser err'||err||' i='||i);
end if;
if SQL%FOUND then
dbms_output.put_line('ok ok ok ok');
end if;
i:=i+1;
end loop;
commit;
Dbms_Output.put_line('总出错数'||err);
Dbms_output.put_line('区级:'||a); Dbms_output.put_line('市级:'||b); Dbms_output.put_line('省级:'||c);
open mycursor for select * from test;
insert into test values(2113,'1111');
loop
fetch mycursor into m;
exit when mycursor%NOTFOUND;
dbms_output.put_line(m.id);
end loop;
for m in mycursor2
loop
dbms_output.put_line(m.id || m.name);
end loop;
/*
lookCard(mycursor);
insert into test values(1112,'1111');
commit;
loop
fetch mycursor into m;
exit when mycursor%NOTFOUND;
dbms_output.put_line(m.id);
end loop;
*/
end;
/
--select * from test ;
/*
create or replace procedure lookCard(
cur out sys_refcursor
)is
begin
open cur for select * from test;
end;
/
*/
--select * from test;
/*
create or replace procedure insertCard(
id in number,
con in varchar,
err in out varchar
)is
begin
insert into test values(id,con);
err:=0;
EXCEPTION
WHEN dup_val_on_index THEN
err:=err+1;
dbms_output.put_line('出错');
end;
/
*/
/*
create table test (
id number(20),
name varchar2(200)
)
alter table test add constraint aa unique(id);
*/
ida varchar(200);
a varchar(200);
b varchar(200);
c varchar(200);
i number(20);
err number(20) default 0;
type cs is ref cursor return test%rowtype; --定义强类型游标
mycursor cs; -- 声明动态强类型游标变量
m test%rowtype;
CURSOR mycursor2 is select * from test;
-- test1Cursor Cursor for select * from test;
begin
ida:= '13140';
i := 13139;
-- select gp.rugr_lruname into a from R_T_RUGROUP gp where gp.rugr_id in (select sp.rumesarearugr_id from R_S_RuMembership sp where sp.saru_id = i and sp.rumes_state = 1);
-- select gp.rugr_lruname into b from R_T_RUGROUP gp where gp.rugr_id in (select sp.rumescityrugr_id from R_S_RuMembership sp where sp.saru_id = i and sp.rumes_state = 1);
-- select gp.rugr_lruname into c from R_T_RUGROUP gp where gp.rugr_id in (select sp.rumesprovincerugr_id from R_S_RuMembership sp where sp.saru_id = i and sp.rumes_state = 1);
err:=0;
while i<13144 loop
insertCard(i,'aaaa',err);
if err != 0 then
dbms_output.put_line('inser err'||err||' i='||i);
end if;
if SQL%FOUND then
dbms_output.put_line('ok ok ok ok');
end if;
i:=i+1;
end loop;
commit;
Dbms_Output.put_line('总出错数'||err);
Dbms_output.put_line('区级:'||a); Dbms_output.put_line('市级:'||b); Dbms_output.put_line('省级:'||c);
open mycursor for select * from test;
insert into test values(2113,'1111');
loop
fetch mycursor into m;
exit when mycursor%NOTFOUND;
dbms_output.put_line(m.id);
end loop;
for m in mycursor2
loop
dbms_output.put_line(m.id || m.name);
end loop;
/*
lookCard(mycursor);
insert into test values(1112,'1111');
commit;
loop
fetch mycursor into m;
exit when mycursor%NOTFOUND;
dbms_output.put_line(m.id);
end loop;
*/
end;
/
--select * from test ;
/*
create or replace procedure lookCard(
cur out sys_refcursor
)is
begin
open cur for select * from test;
end;
/
*/
--select * from test;
/*
create or replace procedure insertCard(
id in number,
con in varchar,
err in out varchar
)is
begin
insert into test values(id,con);
err:=0;
EXCEPTION
WHEN dup_val_on_index THEN
err:=err+1;
dbms_output.put_line('出错');
end;
/
*/
/*
create table test (
id number(20),
name varchar2(200)
)
alter table test add constraint aa unique(id);
*/
相关文章推荐
- Oracle 静态 动态游标的使用
- ORACLE中使用动态游标的例子
- Oracle使用REF 动态游标
- ORACLE中使用动态游标的例子
- oracle动态游标的创建和使用
- 『ORACLE』 PLSQL动态游标的使用(11g)
- oracle的DBMS_SQL中动态游标的使用资料搜集
- Oracle使用REF 动态游标
- 关于oracle中动态游标的使用例子ref cursor
- Oracle动态游标的使用
- 使用控制文件,将文本导入oracle
- 使用Oracle数据库开发中的一个技巧
- 使用 db_file_multiblock_read_count测试Oracle在不同系统中的IO能力
- Oracle 分析函数的使用
- ORACLE中BFILE字段的使用研究
- Oracle数据库系统使用经验六则
- 在Oracle 9i isqlplus中使用替换变量
- Oracle数据库系统使用经验六则
- Oracle exp/imp导出导入工具的使用
- oracle里面使用临时表解决表冲突一例(转贴)