莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          PL/SQL學習筆記(五)

          Posted on 2007-02-11 19:59 dennis 閱讀(922) 評論(0)  編輯  收藏 所屬分類: 數據庫技術

          編寫控制結構:順序結構,條件結構,循環結構

          一。條件語句:

          1。與delphi或者java,或者其他任何語言的條件語句基本一樣咯:

          單條件:

          IF condition THEN

          ? ......

          END IF;

          雙條件:

          IF condition THEN

          ? ......

          ELSE

          ? ...

          END IF;

          多條件:

          IF condition THEN

          ?? ...

          ELSEIF conditon THEN

          ?? ....

          ELSEIF conditon THEN

          ?? ....

          ELSE

          ?? ....

          END IF;

          ?

          舉例:

          DECLARE
          ??v_sal?
          NUMBER ( 6 , 2 );
          ??v_id?
          NUMBER ;
          BEGIN
          ??v_id:
          = ' &id ' ;
          ??
          SELECT ?salary? into ?v_sal? FROM ?employee
          ??
          WHERE ?id = v_id;
          ??
          IF ?v_sal < 4000 ? THEN
          ?????
          update ?employee? set ?salary = (v_sal + 100 )? where ?id = v_id;
          ??
          ELSE
          ?????
          update ?employee? set ?salary = (v_sal - 900 )? where ?id = v_id;
          ??
          END ? IF ;
          END ;


          二。CASE語句:

          各種語言的switch ...case語句相同,只不過沒有switch關鍵字。

          1。使用單一選擇符進行比較:

          ?

          CASE ?selector

          ??
          WHEN ?expression1? THEN ?;

          ??
          WHEN ?expression? 2 ? THEN ?;

          ??

          ?

          END CASE;

          2。多種條件比較:

          ?

          CASE

          ??
          WHEN ?condition1? THEN ?;

          ??
          WHEN ?condition2? THEN ?;

          ??
          WHEN ?condition3? THEN ?;

          END CASE;
          ??

          ?

          ?

          (三)循環語句:

          3種循環:

          1?;狙h,至少執行一次:

          LOOP

          ?? statement1;

          ???...

          ?? EXIT WHEN 退出循環條件;

          END LOOP1;

          例如:

          ?

          LOOP

          ??
          insert ? into ?employee(id,name)? values (i, ' dennis ' );

          ??i:
          = i + 1 ;

          ??
          EXIT ? WHEN ?i > 10 ;

          END ?LOOP;

          ?

          2。while循環:

          WHILE conditon1 LOOP

          ?? statement1;

          ?? ...

          END LOOP;

          比如上面的例子改寫為:

          ?

          WHILE ?i <= 10 ?LOOP

          ???
          insert ? into ?employee(id,name)? values (i, ' dennis ' );?

          ???i:
          = i + 1 ;

          END ?LOOP;

          ?

          3。FOR循環,類似于ruby的FOR循環:

          FOR counter IN [REVERSE] 下限..上限 LOOP

          ? statement1;

          ??...

          END LOOP;

          REVERSE參數可選,有的話表示從上限往下限遞減。

          ?

          (四)順序控制語句

          PL/SQL也提供了GOTO和NULL語句用于控制語句執行順序,GOTO語句與JAVA的機制相似,通過label來實現跳轉,盡量不要使用。NULL語句不會執行任何操作,它的存在主要是為了提高程序的可讀性。?

          主站蜘蛛池模板: 湘潭市| 共和县| 平阳县| 新源县| 昌图县| 晴隆县| 玉环县| 得荣县| 同仁县| 新竹市| 丽水市| 普陀区| 西乌珠穆沁旗| 高碑店市| 泗阳县| 政和县| 岗巴县| 霸州市| 永和县| 星座| 南宫市| 搜索| 长寿区| 大悟县| 句容市| 普兰县| 永修县| 石屏县| 湘乡市| 奎屯市| 海宁市| 中方县| 邯郸县| 辉南县| 隆子县| 水富县| 铁力市| 邳州市| 平原县| 邛崃市| 临桂县|