GET DIAGNOSTIC 語句

來源:互聯網
上載者:User

----start

    GET DIAGNOSTIC 語句用於擷取前面執行的 SQL 陳述式的相關資訊,它可以擷取以下資訊:

1、前面執行的 SQL 陳述式處理的行數<br />2、前面執行的 SQL 陳述式返回的 DB2 錯誤或警告訊息文本<br />3、與前一個 CALL 語句相關聯的過程返回的狀態值<br /> 

一:文法:

GET DIAGNOSTICS <sql-variable-name>=[ROW_COUNT | DB2_RETURN_STATUS | <condition-information></p><p>condition-information:<br />EXCEPTION 1 <sql-variable-name>=[MESSAGE_TEXT | DB2_TOKEN_STRING] 

二:樣本:

--串連資料庫<br />CONNECT TO SAMPLE!</p><p>--建立測試表<br />CREATE TABLE TEST (A CHAR(1))!</p><p>--建立預存程序1<br />CREATE PROCEDURE TESTPROC1 (IN CH1 CHAR(2))<br />BEGIN<br /> DECLARE SQLCODE INTEGER DEFAULT 0;<br /> DECLARE SQLSTATE CHAR(5) DEFAULT '';<br /> DECLARE ERR_MSG VARCHAR(70);<br /> DECLARE R_STATE INTEGER DEFAULT 0;</p><p> --聲明異常處理模組<br /> DECLARE CONTINUE HANDLER FOR SQLEXCEPTION<br /> BEGIN<br /> --擷取前面執行的 SQL 陳述式返回的錯誤或警告訊息<br /> GET DIAGNOSTICS EXCEPTION 1 ERR_MSG=MESSAGE_TEXT;<br /> SET R_STATE=1;<br /> END;</p><p> INSERT INTO TEST VALUES (CH1);<br /> RETURN R_STATE;<br />END!</p><p>--建立預存程序2<br />CREATE PROCEDURE TESTPROC (OUT R_COUNT INTEGER, OUT R_STATE INTEGER)<br />P1:BEGIN<br /> SET R_COUNT=0;<br /> SET R_STATE=0;</p><p> --向TEST表插入資料<br /> INSERT INTO TEST (A) VALUES (1),(2);</p><p> --擷取前面執行的 SQL 陳述式處理的行數<br /> GET DIAGNOSTICS R_COUNT=ROW_COUNT;</p><p> --調用TESTPROC1<br /> CALL TESTPROC1('AB');</p><p> --擷取前一個預存程序返回的狀態值<br /> GET DIAGNOSTICS R_STATE = DB2_RETURN_STATUS;<br />END P1!</p><p>--調用預存程序2<br />CALL TESTPROC(?,?)!</p><p>--刪除預存程序<br />DROP PROCEDURE TESTPROC1!<br />DROP PROCEDURE TESTPROC!</p><p>--刪除測試表<br />DROP TABLE TEST!</p><p>--關閉串連<br />CONNECT RESET! 

三:運行樣本:

將上面的代碼儲存為c:/test.sql,然後在DB2 命令視窗中執行如下命令<br />db2 -td! -vf c:/test.sql  

 

----更多參見:SQL PL 精萃

----聲明:轉載請註明出處。

----last updated on 2010.2.8

----written by ShangBo on 2010.2.8

----end

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.