幸せのちから

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

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

          一、 SQLPLUS
          比如我的數(shù)據(jù)庫中有下面這樣一個存儲過程,我怎么樣能調(diào)用這個存儲過程,并得到返回值呢?
          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)用存儲過程或者函數(shù)會想到CALL或者EXECUTE,但是問題的關(guān)鍵是這個存儲過程具有IN-OUT參數(shù),應(yīng)該是不能使用上面兩個命令吧,
          所以我想到就是自己寫個匿名PL/SQL塊來進行調(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新手,如果哪位有更好的方法請賜教。

          二、使用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 閱讀(1882) 評論(0)  編輯  收藏


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


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

          導(dǎo)航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 兖州市| 巴林右旗| 建阳市| 武隆县| 防城港市| 崇义县| 舒兰市| 大竹县| 南汇区| 安陆市| 绥宁县| 洛南县| 虎林市| 凤阳县| 象山县| 库尔勒市| 剑川县| 新安县| 浦城县| 应用必备| 德昌县| 磐安县| 陕西省| 确山县| 石林| 三穗县| 海城市| 吉隆县| 黑龙江省| 东台市| 邵东县| 金昌市| 泊头市| 太康县| 镇巴县| 景东| 大城县| 田林县| 拉萨市| 长阳| 玛纳斯县|