程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2存儲過程簡單例子

DB2存儲過程簡單例子

編輯:DB2教程

 

    客戶在進行短信服務這個業務申請時,需要填寫一些基本信息,然後根據這些信息判斷這個用戶是否已經存在於業務系統中。因為網上服務和業務系統兩個項目物理隔離,而且網上數據庫保存的客戶信息不全,所以判斷需要把數據交換到業務系統,在業務系統中判斷。

 

    解決方式是通過存儲過程,以前也了解過存儲過程,但沒使用到項目中。不過經過一番努力最後還是完成了,期間遇到了一些困難,特寫此文讓對DB2存儲過程還不熟悉的童鞋避免一些無謂的錯誤。

 

  

 

DROP PROCEDURE "PLName"@CREATE PROCEDURE "PLName"(--存儲過程名字IN IN_ID BIGINT ,                    --以下全是輸入參數IN IN_ENTNAME VARCHAR(200) ,IN IN_REGNO VARCHAR(50),IN IN_PASSWORD VARCHAR(20),IN IN_LEREP VARCHAR(300),IN IN_CERTYPE CHARACTER(1),IN IN_CERNO VARCHAR(50),IN IN_LINKMAN VARCHAR(50),IN IN_SEX CHARACTER(1),IN IN_MOBTEL VARCHAR(30),IN IN_REQDATE TIMESTAMP,IN IN_REMITEM VARCHAR(300),IN IN_STATE CHARACTER(1),IN IN_TIMESTAMP TIMESTAMP)BEGIN       declare V_RESULT  BIGINT;     --聲明變量   DELETE FROM  TableNameA WHERE ID = IN_ID;   SET V_RESULT = NULL;          --為變量賦值  --檢查用戶輸入的信息是否合法  select b.id INTO V_RESULT  from TableNameB b,TableNameC c where 正常的判斷條件    if(V_RESULT IS NOT NULL)  then ---如果合法,執行下面的insert語句   INSERT INTO TableNameA(ID,ENTNAME,REGNO,PASSWORD,LEREP,CERTYPE,CERNO,LINKMAN,SEX,MOBTEL,REQDATE,REMITEM,STATE,TIMESTAMP)   VALUES(IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP);  end if;    commit;END@功能說明:

 

調用存儲過程時會傳入一些值(IN輸入參數),然後根據傳入的值查詢數據庫(select語句),根據查詢結果執行操作(添加、刪除、更新)

 

有兩種方式執行寫好的存儲過程:

 

    1.拷貝到DB2客戶端工具中直接執行

 

  特別注意:執行時將

 

\

 

 

改成@,之前很多錯誤都和它有關,比如:“該命令被當作SQL

語句來處理,因為它不是有效的命令行處理器命令”正是這個問題花費了很長時間,嚴重影響心情

 

    2.將上面的語句保存為test.db2文件放到任意目錄下(比如D盤根目錄),然後在cmd輸入db2cmd 然後輸入db2 -td@ -vf  D:\test.db2即可

 

 執行後就可以測試存儲過程寫的是否正確

 

 直接寫sql:

 

call PLName(存儲過程名字) (IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP對應的值)以上就是我今天所用到的存儲過程,功能非常簡單,比較復雜的操作也在摸索階段,有什麼疑問大家可以隨時交流

 

摘自 己欲立而立人,己欲達而達人

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved