<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-0  評論-1  文章-13  trackbacks-0
    1.塊結構:
    PL
    /SQL程序被分割為稱為塊(block)的結構,塊中包含PL/SQL程序語句。典型的PL/SQL塊具有
    以下的結構:
    [DECLARE
        declaration_statements 
    ]
    BEGIN
        executable_statements
    [EXCEPTION
        exception_handling_statements
    ]
    END;
    語法元素:
    declaration_statement : 
      聲明了在塊的其余部分中使用的變量。這些變量是塊的局部變量。
    executable_statment:
      塊的實際可執行語句。
    exeception_handling_statement:
      處理可執行語句可能發生的錯誤。

    注意:每條語句都要有(;)分號結尾,塊使用END關鍵字結尾。

    例程:
    DECLARE
        width 
    INTEGER :=2;
        height 
    INTEGER ;
        area 
    INTEGER ;
    BEGIN
        height :
    =3 ;
        area :
    =width*height ;
        DBMS_OUTPUT.PUT_LINE(
    'Area='||area); //表示在屏幕上顯示;
    END;
    /   //表示執行這個PL/SQL塊;

    注意:必須在SQL
    *PLUS中提前輸入:SET SERVEROUTPUT ON 才能顯示的輸出。

    2.變量類型:
    變量名   變量類型 ;
    / : = [初始數值] ;
      id   
    INTEGER ;
    name   
    VARCHAR2(20) :='BinMing';

      
    * proname product.price%TYPE ; // (%TYPE) 表示proname 的類型要和product表中的price的類型一致。

    3.條件邏輯:
    1.IF [條件1] THEN
        
    [語句段]
      ELSEIF 
    [條件2] THEN
          .
    .
    .
      
    END IF ;


    2.循環(簡單循環/WHILE/FOR)
      單循環:
    LOOP 
      statements
    END LOOP;
    //一直循環語句段,除非顯示的輸入EXIT / EXIT WHEN 語句結束循環
          
      WHILE循環:
    WHILE condition LOOP
        statements
    END LOOP;

    example:
      
    count:=0;
      
    WHILE counter<6 LOOP 
        
    count :=count + 1 ;
      
    END LOOP ;

    3.FOR循環:
    FOR loop_variable IN [REVERSE] lower_bound..upper_bound LOOP
      statements;
    END LOOP;

    example:
      
    FOR id IN 3..6 LOOP
      DBMS_OUTPUT.PUT_LINE(id);
      
    END LOOP;


    4.游標的使用:

    步驟一: 聲明變量來存儲例值 :

    DECLARE
      id products.id
    %TYPE;
      
      

    步驟二: 聲明游標 :

    游標要放在聲明部分中。

    CURSOR product_cursor IS   
      
    Select 
      id,name,price
      
    FROM
      products
      
    ORDER BY
      id;

            
    //聲明了游標的類型或著說方法

    步驟三:打開游標 :
    使用OPEN語句打開游標,必須放在塊的可執行部分中。

      
    OPEN product_cursor ;

    步驟四: 從游標中獲取行:
    使用 
    FETCH 語句讀取游標中的行:
      
    FETCH:
      product_cursor;
      
    INTO
      id,name,price;   
    //把值存儲到上面聲明的三個變量中.
    // 如果游標返回可能包含很多行的話,就要循環取出每一行數據,
      可以使用product_cursor
    %NOTFOUND決定虛幻何時結束。

    步驟五: 關閉游標:
    CLOSE product_cursor;

    5.過程:
        使用PL
    /SQL創建包含一組SQL語句和PL/SQL語句的過程。
        可以使用這些過程將業務邏輯集中在數據庫中,訪問數據
        庫的任何程序都可以使用這些過程。

        使用Create 
    PROCEDURE 語句創建PL/SQL過程:
    Create[OR REPLACE] PROCEDURE procedure_name     //過程名字
    [(parameter_name)[IN|OUT|IN OUT] type[])] //過程使用的參數
    {
    IS|AS}
    {
      body
    };

    .
    IN 參數的默認模式。如果在過程運行時參數以有一個值,而且這個值在過程體中不能修改,
      那么就應該指定這種模式。
    .OUT 如果參數的值只在過程體中設置,那么就應該指定這種模式。
    .
    IN OUT 如果在過程被調用時參數可能已經有一個值,但是這個值可以在過程體中修改,那
    么就應該指定這種模式。


    例子程序:
    Create PROCEDURE update_product_price(

      p_product_id 
    IN products.id%TYPE ;
      p_factor   
    IN NUMBER ;
      
      ) 
    AS

      product_count 
    INTEGER ;

      
    BEGIN 
      
    Select 
      
    COUNT(*)
      
    INTO
      product_count
      
    FROM 
      products
      
    Where
      id 
    = p_product_id;

      
    IF product_count = 1 THEN
      
    Update
          products
      
    SET
          price 
    = price * p_factor ;
      
    COMMIT ;
      
    END IF ;

      
    END update_product_price ;
      
    /
    posted on 2008-06-06 18:50 飛行魚 閱讀(230) 評論(0)  編輯  收藏 所屬分類: Oracle

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲三区在线观看无套内射| 国产成人涩涩涩视频在线观看免费| 女人隐私秘视频黄www免费| 成人免费视频88| 国产亚洲精品AA片在线观看不加载| 久久久久久亚洲精品| 中文字幕不卡免费高清视频| 中文字幕精品亚洲无线码一区| 亚洲区精品久久一区二区三区| 一级中文字幕免费乱码专区| 免费大香伊蕉在人线国产 | 日本系列1页亚洲系列| 天天操夜夜操免费视频| 亚洲精品乱码久久久久66| 美女网站在线观看视频免费的 | 深夜A级毛片视频免费| 免费大片在线观看网站| 一级做a爰片性色毛片免费网站 | 久久久久亚洲国产| 日本免费观看网站| 免费一级毛suv好看的国产网站| www视频在线观看免费| 亚洲欧洲日本在线观看| 国产又粗又猛又爽又黄的免费视频| 亚洲国产精品成人精品小说| 国产一二三四区乱码免费| 亚洲AV第一页国产精品| 很黄很色很刺激的视频免费| 久久亚洲精品中文字幕| 最近免费中文字幕大全| 成年免费a级毛片| 亚洲AV区无码字幕中文色| 久久www免费人成精品香蕉| 亚洲精品无码永久在线观看你懂的 | 四虎精品亚洲一区二区三区| 日韩精品无码免费视频| 日韩精品一区二区亚洲AV观看| 两个人看www免费视频| 亚洲精品无码AV中文字幕电影网站| 亚洲日本va一区二区三区| 久久亚洲国产成人精品无码区|