■質問日: |
2012/11/21 |
■最終更新日: |
2012/11/21 |
■質問内容: |
ストアドプロシージャを実行するにはどうすればいいでしょうか? |
■回答内容: |
jp.co.tenartni.sql.STPUpdateクラス(ストアドプロシージャ実行クラス)を使用します。 実行ステートメントをSQLプロパティに次の様な形式で設定します。 "{call (:param1,:param2 ~ )}" ":result = {call (:param1,:param2 ~ )}" 【サンプル】 STPUpdate stpUpdate = new STPUpdate(); stpUpdate.setSQL("{call PK_SAMPLE.SET_AND_GET_TEST(:IN_OUT_PARAM)}"; stpUpdate.getParam("IN_OUT_PARAM").setType(Type.STRING); stpUpdate.getParam("IN_OUT_PARAM").setParamType(ParamType.INOUT); stpUpdate.setString("IN_OUT_PARAM", "SET_MESSAGE"); stpUpdate.setSqlHandler(this.getSqlHandler()); stpUpdate.execute(true, false); System.out.println("IN_OUT_PARAM : " + stpUpdate.getString("IN_OUT_PARAM")); ※注意:パラメータの型、IN・OUTを全て設定してから、setStringを行ってください。 型の設定途中でsetStringを行うとsetActiveが実行され、内部の方がUNKNOWN(不明)で確定されてしまいまい、setStirngのタイミングで以下のようなエラーが発生する場合があります。 <発生するエラー> jp.co.tenartni.data.DataHandleException: Item error(IN_NYKBI); Operation toward the data type is injustice.:Column(1) または jp.co.tenartni.data.DataHandleException: Item error(IN_NYKBI);データ型に対する操作が不正です。:Column(1) |
■添付資料: |
なし |