oracle游标简单使用

游标用来临时存放查询的结果集

1
2
--查看TEST用户的表空间,用户名大写
select  *  from  dba_tables cc   where cc.OWNER='TEST'

  

1
2
3
--先看看当前表空间有哪些表
 
select  bb.TABLE_NAME  from  dba_tables bb  where bb.TABLESPACE_NAME='TESTSPACE'

  建表语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
create table public_memo(
   ids varchar2(32) not null,
   title varchar2(255) not null,
   contents clob not null,
   address varchar(255) not null,
   longitude number(13,10) not null,
   latitude number(13,10) not null,
   created_date date,
   updated_date date,
   status varchar2(4) not null
)
comment on table   public_memo is '备忘录';
  
comment on column public_memo.ids is '主键id';
  
comment on column public_memo.title is '标题';
  
comment on column public_memo.contents is '内容';
  
comment on column public_memo.address is '地址';
  
comment on column public_memo.longitude is '经度';
  
comment on column public_memo.latitudeis '纬度';
  
comment on column public_memo.created_date is '创建时间';
  
comment on column public_memo.updated_date is '修改时间';
  
comment on column public_memo.status is '状态';

  

1
2
3
4
5
6
7
8
9
insert into public_memo(ids,title,contents,address,longitude,latitude,created_date,updated_date,status)
values (sys_guid(),'1','23','浦东大道',12.1234,13.2345,sysdate,sysdate,'1');
  
insert into public_memo(ids,title,contents,address,longitude,latitude,created_date,updated_date,status)
values (sys_guid(),'2','24','浦东大道001',12.1234,13.2345,sysdate,sysdate,'2');
  
  
insert into public_memo(ids,title,contents,address,longitude,latitude,created_date,updated_date,status)
values (sys_guid(),'3','25','浦东大道002',12.1234,13.2345,sysdate,sysdate,'3');

  打印title为2的数据,输出

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--游标使用
declare
 cursor memo_cursor is select  *  from  PUBLIC_MEMO tt  where tt.title=2;
 v_memo PUBLIC_MEMO%rowtype;
begin
 open  memo_cursor;   --打开游标
   loop
      
    fetch  memo_cursor into v_memo;  ---提取游标
    exit when  memo_cursor%notfound;
    DBMS_OUTPUT.put_line('地址:'||v_memo.address);
     
     
   end loop;
 close memo_cursor;    --关闭游标
end;

 带参数的游标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--游标使用
declare
 cursor memo_cursor(v_title varchar2) is select  *  from  PUBLIC_MEMO tt  where tt.title=v_title;
 v_memo PUBLIC_MEMO%rowtype;
begin
 open  memo_cursor(3);   --打开游标
   loop
      
    fetch  memo_cursor into v_memo;  ---提取游标
    exit when  memo_cursor%notfound;
    DBMS_OUTPUT.put_line('地址:'||v_memo.address);
     
     
   end loop;
 close memo_cursor;    --关闭游标
end;

  循环打印

1
2
3
4
5
6
7
8
9
--游标使用
declare
 cursor memo_cursor(v_title varchar2) is select  *  from  PUBLIC_MEMO tt  where tt.title=v_title;
begin
    for v_memo in memo_cursor(1)
   loop
    DBMS_OUTPUT.put_line('地址:'||v_memo.address);
   end loop;
end;

  

posted @   不忘初心2021  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示