幸せのちから

          平凡的世界
          看似平常實(shí)崎嶇
          成如容易卻艱辛

          怎樣在sqlplus和JAVA中調(diào)用帶有IN-OUT參數(shù)的存儲(chǔ)過程

          一、 SQLPLUS
          比如我的數(shù)據(jù)庫中有下面這樣一個(gè)存儲(chǔ)過程,我怎么樣能調(diào)用這個(gè)存儲(chǔ)過程,并得到返回值呢?
          CREATE OR REPLACE
          PROCEDURE TEST_PROCEDURE1
            (
              PARAM1 IN VARCHAR2,
              PARAM2      IN OUT VARCHAR2,
              PARAM3      IN OUT NUMBER)
                          IS
          BEGIN
            PARAM2              := '88888';
            PARAM3              := '0';
          END TEST_PROCEDURE1;

          一般調(diào)用存儲(chǔ)過程或者函數(shù)會(huì)想到CALL或者EXECUTE,但是問題的關(guān)鍵是這個(gè)存儲(chǔ)過程具有IN-OUT參數(shù),應(yīng)該是不能使用上面兩個(gè)命令吧,
          所以我想到就是自己寫個(gè)匿名PL/SQL塊來進(jìn)行調(diào)用。代碼如下所示:
          DECLARE
            PARAM1 VARCHAR2(10);
            PARAM2 VARCHAR2(10);
            PARAM3 NUMBER;
          BEGIN
            PARAM1 := '810' ;
            PARAM2 := '1';
            PARAM3 :=1;
           TEST_PROCEDURE1(PARAM1 ,PARAM2 ,PARAM3 );
            DBMS_OUTPUT.PUT_LINE(PARAM2 );
            DBMS_OUTPUT.PUT_LINE(PARAM3 );
          END;

          PL/SQL新手,如果哪位有更好的方法請(qǐng)賜教。

          二、使用JAVA調(diào)用
                  conn:  一般的JDBC連接,JAVA調(diào)用主要代碼如下

                  CallableStatement call = conn.prepareCall("{call TEST_PROCEDURE1(? ,? ,?)}");
                  call.setString(1, "810");//傳入?yún)?shù)1
                  call.setString(2, "1");//傳入?yún)?shù)2(傳出參數(shù)1)
                  call.setInt(3, 1);//傳入?yún)?shù)3(傳出參數(shù)2)
                  call.registerOutParameter(2, java.sql.Types.VARCHAR);//傳出參數(shù)1
                  call.registerOutParameter(3, java.sql.Types.NUMERIC);//傳出參數(shù)2
                  call.execute();
                  System.out.println(call.getString(2));
                  System.out.println(call.getInt(3));

          posted on 2009-04-17 15:05 Lucky 閱讀(1876) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導(dǎo)航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評(píng)論

          主站蜘蛛池模板: 民和| 嘉义县| 永州市| 张掖市| 布拖县| 南城县| 贵德县| 枣阳市| 米泉市| 开封市| 仲巴县| 饶河县| 乐安县| 井冈山市| 新巴尔虎右旗| 南丹县| 潜山县| 九江市| 唐河县| 新乡县| 正镶白旗| 焦作市| 大石桥市| 申扎县| 万源市| 青海省| 九龙县| 桦甸市| 宜都市| 汉寿县| 喀喇沁旗| 萍乡市| 岑巩县| 南京市| 吴堡县| 岢岚县| 上杭县| 文成县| 洪湖市| 龙山县| 昭苏县|