国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE PL/SQL 基礎2 (游標的學習)

2024-08-29 13:48:00
字體:
來源:轉載
供稿:網友

  
游標學習

一> 游標是什么:
  游標字面理解就是游動的光標。
  用數據庫語言來描述:游標是映射在結果集中一行數據上的位置實體,有了游標
  用戶就可以訪問結果集中的任意一行數據了,將游標放置到某行后,即可對該行數據進行操作,例如提取當前
  行的數據等等。
二> 游標的分類:
   顯式游標和隱式游標

   顯示游標的使用需要4步:
      1.聲明游標
              
                CURSOR mycur(vartype number) is
                 select emp_no,emp_zc from cus_emp_basic
                where com_no = vartype;

      2.打開游標
               open mycur(000627)         注:000627:參數
          
      3.讀取數據
                 fetch mycur into varno,varPRice;
              
      4.關閉游標
                 close mycur;
三> 游標的屬性
       Oracle 游標有4個屬性: %ISOPEN , %FOUND , %NOTFOUND, %ROWCOUNT
      
       %ISOPEN 判定游標是否被打開,假如打開%ISOPEN 等于true,否則等于false
       %FOUND  %NOTFOUND 判定游標所在的行是否有效,假如有效,則%FOUNDD等于true,否則等于false
       %ROWCOUNT 返回當前位置為止游標讀取的記錄行數。

四> 示例:
 
  
set serveroutput on;
declare
      varno varchar2(20);
      varprice varchar2(20);
     
     CURSOR mycur(vartype number) is
       select emp_no,emp_zc from cus_emp_basic
       where com_no = vartype;
     begin
    
       if mycur%isopen = false then
       
         open mycur(000627);
       end if;
         fetch mycur into varno,varprice;
         while mycur%found
         loop
        dbms_output.put_line(varno','varprice);
        if mycur%rowcount=2 then
        exit;
        end if;
        fetch mycur into varno,varprice;
     
        end loop;
        close mycur;
        
         end;

 

 

  pl/sql 記錄 的結構和c語言中的結構體類似,是由一組數據項構成的邏輯單元。

  pl/sql 記錄并不保存再數據庫中,它與變量一樣,保存再內存空間中,在使用記錄時候,要首先定義記錄結構
  ,然后聲明記錄變量。可以把pl/sql記錄看作是一個用戶自定義的數據類型。

  set serveroutput on;
       declare
    
      type person is record
         (
            empno  cus_emp_basic.emp_no%type,
            empzc  cus_emp_basic.emp_zc%type);
     
      person1 person;
     
      cursor mycur(vartype number)is
      select emp_no,emp_zc from cus_emp_basic
           where com_no=vartype;
          
      begin
           if mycur%isopen = false then
           open mycur(000627);
           end if;
          
           loop
             fetch mycur into person1;
             exit when mycur%notfound;
             dbms_output.put_line('雇員編號:'person1.empno',地址:'person1.empzc);
          end loop;
          close mycur;
          end;

 


   典型游標for 循環
   
    游標for循環示顯示游標的一種快捷使用方式,它使用for循環依次讀取結果集中的行
    數據,當form循環開始時,游標自動打開(不需要open),每循環一次系統自動讀取
    游標當前行的數據(不需要fetch),當退出for循環時,游標被自動關閉(不需要使用close)

   使用游標for循環的時候不能使用open語句,fetch語句和close語句,否則會產生錯誤。

 


         set serveroutput on;
        declare
    
    
        cursor mycur(vartype number)is
           select emp_no,emp_zc from cus_emp_basic
           where com_no=vartype;
          
        begin
  
        
         for  person in mycur(000627) loop
        
            dbms_output.put_line('雇員編號:'person.emp_no',地址:'person.emp_zc);
            end loop;
         
          end;

上一篇:Oracle是如何工作的

下一篇:ORACLE 鎖

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临沧市| 昭通市| 大港区| 榆树市| 历史| 当雄县| 太保市| 天气| 吉木萨尔县| 镇赉县| 贵州省| 昔阳县| 嘉鱼县| 福贡县| 涿鹿县| 晋江市| 长岛县| 冀州市| 洛川县| 邵武市| 揭西县| 抚松县| 崇礼县| 中阳县| 茌平县| 喜德县| 肥乡县| 灯塔市| 九江市| 禹城市| 屯昌县| 保靖县| 沁水县| 清水河县| 石城县| 三穗县| 繁峙县| 海丰县| 黄龙县| 萨迦县| 萨迦县|