■質問日: |
2002/03/20 |
■最終更新日: |
2012/11/21 |
■質問内容: |
ストアドプロシージャを実行するにはどうすればいいでしょうか? |
■回答内容: |
ClientConnectionクラスのexecuteSQL()メソッドを使います。 詳しくはサンプルを参照してください。 |
■添付資料: |
ストアドプロシージャを実行するコーディング例(下記はOracle) // HtmlForm継承クラス内で実行します。 // Oracleストアドプロシージャ String PROC_1 = "{ call pkg_test.p_proc_1( " + ":USER_ID, :DEPT_CD, " + ":RESULT, :ERROR_MSG " + ") }"; //プロシージャ呼出・送信チェック処理 ParamSet pProc = new ParamSet(); // 入力パラメタ pProc.addParam(DB.USER_ID, Type.STRING, ParamType.IN); pProc.addParam(DB.DEPT_CD, Type.STRING, ParamType.IN); // 出力パラメタ pProc.addParam(DB.RESULT, Type.INT, ParamType.OUT); pProc.addParam(DB.ERROR_MSG, Type.STRING, ParamType.OUT); // 入力パラメタの値の設定 pProc.setString(DB.USER_ID, "12345"); pProc.setString(DB.DEPT_CD, "ABCD"); // 出力パラメタのデフォルト値の設定 pProc.setInt(DB.RESULT, 0); pProc.setString(DB.ERROR_MSG, " "); //実行 ParamSet resultParam = this.getSession().getClientConnection().executeSql(PROC_1, pProc); int result = resultParam.getInt(DB.RESULT); if (result != 0) { //正常終了でない場合 throw new DataHandleException(resultParam.getString(DB.ERROR_MSG)); } |