<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【轉】oracle 存儲過程的基本語法及注意事項

      1.基本結構
      CREATE OR REPLACE PROCEDURE 存儲過程名字
      (
          參數1 IN NUMBER,
          參數2 IN NUMBER
      ) IS
      變量1 INTEGER :=0;
      變量2 DATE;
      BEGIN

      END 存儲過程名字

      2.SELECT INTO STATEMENT
        將select查詢的結果存入到變量中,可以同時將多個列存儲多個變量中,必須有一條
        記錄,否則拋出異常(如果沒有記錄拋出NO_DATA_FOUND)
        例子:
        BEGIN
        SELECT col1,col2 into 變量1,變量2 FROM typestruct where xxx;
        EXCEPTION
        WHEN NO_DATA_FOUND THEN
            xxxx;
        END;
        ...

      3.IF 判斷
        IF V_TEST=1 THEN
          BEGIN
             do something
          END;
        END IF;

      4.while 循環
        WHILE V_TEST=1 LOOP
        BEGIN
       XXXX
        END;
        END LOOP;

      5.變量賦值
        V_TEST := 123;

      6.用for in 使用cursor

        ...
        IS
        CURSOR cur IS SELECT * FROM xxx;
        BEGIN
       FOR cur_result in cur LOOP
        BEGIN
         V_SUM :=cur_result.列名1+cur_result.列名2
        END;
       END LOOP;
        END;

      7.帶參數的cursor
        CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
        OPEN C_USER(變量值);
        LOOP
       FETCH C_USER INTO V_NAME;
       EXIT FETCH C_USER%NOTFOUND;
          do something
        END LOOP;
        CLOSE C_USER;

      8.用pl/sql developer debug
        連接數據庫后建立一個Test WINDOW
        在窗口輸入調用SP的代碼,F9開始debug,CTRL+N單步調試

      關于oracle存儲過程的若干問題備忘

      1.在oracle中,數據表別名不能加as,如:

      select a.appname from appinfo a;-- 正確
      select a.appname from appinfo as a;-- 錯誤
       也許,是怕和oracle中的存儲過程中的關鍵字as沖突的問題吧

      2.在存儲過程中,select某一字段時,后面必須緊跟into,如果select整個記錄,利用游標的話就另當別論了。

        select af.keynode into kn from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 有into,正確編譯
        select af.keynode from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 沒有into,編譯報錯,提示:Compilation 
        Error: PLS-00428: an INTO clause is expected in this SELECT statement

      3.在利用select...into...語法時,必須先確保數據庫中有該條記錄,否則會報出"no data found"異常。

         可以在該語法之前,先利用select count(*) from 查看數據庫中是否存在該記錄,如果存在,再利用select...into...

      4.在存儲過程中,別名不能和字段名稱相同,否則雖然編譯可以通過,但在運行階段會報錯

       select keynode into kn from APPFOUNDATION where appid=aid and foundationid=fid;-- 正確運行
      select af.keynode into kn from APPFOUNDATION af where af.appid=appid and af.foundationid=foundationid;-- 運行階段報錯,提示
      ORA-01422:exact fetch returns more than requested number of rows

      5.在存儲過程中,關于出現null的問題

      假設有一個表A,定義如下:
      create table A(
      id 
      varchar2(50primary key not null,
      vcount 
      number(8not null,
      bid 
      varchar2(50not null -- 外鍵 
      );
      如果在存儲過程中,使用如下語句:
      select sum(vcount) into fcount from A where bid='xxxxxx';
      如果A表中不存在bid="xxxxxx"的記錄,則fcount=null(即使fcount定義時設置了默認值,如:fcount number(8):=0依然無效,fcount還是會變成null),這樣以后使用fcount時就可能有問題,所以在這里最好先判斷一下:
      if fcount is null then
          fcount:
      =0;
      end 
      if;
      這樣就一切ok了。

      6.Hibernate調用oracle存儲過程

              this.pnumberManager.getHibernateTemplate().execute(
                      
      new HibernateCallback() {
                          
      public Object doInHibernate(Session session)
                                  
      throws HibernateException, SQLException {
                              CallableStatement cs 
      = session
                                      .connection()
                                      .prepareCall(
      "{call modifyapppnumber_remain(?)}");
                              cs.setString(
      1, foundationid);
                              cs.execute();
                              
      return null;
                          }

                      }
      );
       
       

      歡迎訪問:找與淘網

      posted @ 2013-01-04 14:18  Tony Zhao  閱讀(277)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美人成人综合在线播放 | 色九月亚洲综合网| 欧洲尺码日本尺码专线美国又| 青铜峡市| 国产人妻大战黑人20p| 日本欧美一区二区三区在线播放| 伊人久久大香线蕉av一区二区| 99精品国产成人一区二区| 999国产精品一区二区| 三年片在线观看免费观看高清动漫| 成人深夜节目在线观看| 强奷漂亮雪白丰满少妇av| 中文字幕日韩有码一区| 欧洲女人牲交性开放视频| 婷婷五月综合丁香在线| 国产精品爽爽爽一区二区| 中文字幕乱码中文乱码毛片 | 扶沟县| 色老99久久九九爱精品| 欧美乱妇高清无乱码免费| 性一交一黄一片| 国产黄色精品一区二区三区| 中文 在线 日韩 亚洲 欧美| 国产普通话对白刺激| 亚洲国产精品va在线观看麻豆 | 日韩精品理论片一区二区| 国产av永久无码天堂影院| 宾馆人妻4P互换视频| 激情综合网一区二区三区| 日本丰满熟妇videossexhd| 免费人成网站免费看视频| 丰满人妻熟妇乱又精品视| 性色av无码久久一区二区三区| 国产一区二区日韩在线| 麻豆精品一区二区三区蜜臀| 最新午夜男女福利片视频 | 色综合久久中文综合久久激情 | 国产日韩久久免费影院| 亚洲线精品一区二区三八戒| 午夜国产小视频| 欧美日韩一区二区三区视频播放|