溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

達夢游標的簡單使用

發(fā)布時間:2020-08-07 00:11:27 來源:ITPUB博客 閱讀:604 作者:yanhengdoudou 欄目:數(shù)據(jù)庫

1         顯示游標

create table T1 ( sex varchar2 ( 10 ), name varchar2 ( 20 ));

insert into t1 values ( ' ' , ' 小劉 ' );

insert into t1 values ( ' ' , ' 小陳 ' );

insert into t1 values ( ' ' , ' 曉燕 ' );

insert into t1 values ( ' ' , ' 小紅 ' );

commit ;

select * from t1 ;

達夢游標的簡單使用

DECLARE

  CURSOR c_t1_cursor is select sex , name from t1 where sex= ' ' ;

 v_sex  t1 . sex %type ;

 v_name t1 . name %type ;

begin

  open c_t1_cursor ;

  loop

  fetch c_t1_cursor into v_sex , v_name ;

  exit when c_t1_cursor%notfound ;

  print ( v_name|| ' is ' ||v_sex );

  end loop ;

  close c_t1_cursor ;

end ;

  達夢游標的簡單使用

注:游標的定義要在匿名塊的定義部分定義,游標打開、提取數(shù)據(jù)、關(guān)閉都在執(zhí)行部分。

2         參數(shù)游標

語法:

CURSOR cursor_name

[(parameter_name datatype, ...)]

IS

select_statement;

......

OPEN cursor_name(parameter_value,.....) ;

DECLARE

  CURSOR c_t1_cursor ( c_sex varchar2 ( 10 )) is select sex , name from t1 where sex=c_sex ;

 v_sex  t1 . sex%type ;

 v_name t1 . name%type ;

begin

  open c_t1_cursor ( ' ' );

  loop

  fetch c_t1_cursor into v_sex , v_name ;

  exit when c_t1_cursor%notfound ;

  print ( v_name|| ' is ' ||v_sex );

  end loop ;

  close c_t1_cursor ;

end ;

  達夢游標的簡單使用

注:open c_t1_cursor(' ') 也可以改為 open c_t1_cursor ( &sex );

3         游標for 循環(huán)

語法:

FOR record_name IN cursor_name|select_statement LOOP

statement1;

statement2;

......

END LOOP;

begin

  for t1_record in ( select sex , name from t1 where sex= ' ' ) loop

   print ( t1_record . name|| ' is ' ||t1_record . sex );

  end loop ;

end ;

  達夢游標的簡單使用

4         游標表達式

語法:

TYPE ref_type_name IS REF CURSOR [RETURN return_type];

cursor_variable ref_type_name;

ref_type_name :用于指定自定義類型名

RETURN :用于指定返回結(jié)果的數(shù)據(jù)類型

cursor_variable :用于指定游標變量名

DECLARE

  TYPE t1_cursor IS REF CURSOR ;

 my_cursor t1_cursor ;

 v_sex  t1 . sex%type ;

 v_name t1 . name%type ;

begin

  OPEN my_cursor FOR select sex , name from t1 where sex= ' ' ;

  LOOP

  FETCH my_cursor INTO v_sex , v_name ;

  EXIT WHEN my_cursor%NOTFOUND ;

  print ( v_name|| ' is ' ||v_sex );

  end loop ;

  close my_cursor ;

end ;

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI