パッケージ org.opengion.hayabusa.taglib

# クラス PlsqlUpdateTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.QueryTag
org.opengion.hayabusa.taglib.PlsqlUpdateTag

すべての実装されたインタフェース:
  `BodyTag`, `IterationTag`, `JspTag`, `Tag`, `TryCatchFinally`, `Serializable`

public class PlsqlUpdateTag extends QueryTag
PLSQLをCALLしてデータベースにアクセスするタグです。 queryType = "JDBCPLSQL" が、標準で用意されています。 queryType と 実際のJavaクラスとの関連付けは、システムリソースの Query_JDBCPLSQL 属性です。 DBTableModel内のデータを 配列でPL/SQLに渡してDB登録します。 ※ このタグは、Transaction タグの対象です。

関連項目:
  - 直列化された形式
機能分類
  ＤＢ登録
形式ｻﾝﾌﾟﾙ:
  ●形式：<og:plsqlUpdate command="…" names="…" dbType="…" queryType="JDBCPLSQL" >{plsql(?,?,?,?,?)} <og:plsqlUpdate> ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義： <og:plsqlUpdate queryType 【TAG】Query を発行する為のクラスIDを指定します() command 【TAG】コマンド (NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY) scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session) maxRowCount 【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=1000])(0:[無制限]) skipRowCount 【TAG】(通常は使いません)データの読み始めの初期値を指定します notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした]) names 【TAG】PL/SQLを利用する場合の引数にセットすべき データの名称をCSV形式で複数指定します dbType 【TAG】Queryオブジェクトに渡す引数のタイプ定義(例:type名_ARRAY) selectedAll 【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false) tableId 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します dbid 【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します stopError 【TAG】PLSQL/SQL処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true) dispError 【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値:true) tableModelCommit 【TAG】テーブルモデルの確定処理を行うかどうか[true/false]を設定します(初期値:true) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=])。 useSLabel 【TAG】7.0.7.0 (2019/12/13) ｴﾗｰﾒｯｾｰｼﾞにSLABELを利用するかどうか[true/false]を指定します(初期値:false) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:plsqlUpdate> ●使用例 ・引数/プロシジャーを他のJSPから渡す場合 【copy.jsp】 <og:hidden name="names" value="UNIQ,USRID,ECNO,EDBN" /> <og:hidden name="SQL" value="{ call RKP0271E.RK0271E( ?,?,?,?,? ) }" /> 【entry.jsp】 <og:plsqlUpdate command = "{@command}" names = "{@names}" →PL/SQLに渡す引数(配列)のカラム名 dbType = "RK0271ARG" →PL/SQLに渡す引数(配列)の定義ファイル名 queryType = "JDBCPLSQL" > {@SQL} →CALLするPL/SQL </og:plsqlUpdate> ・引数/プロシジャーを直接書く場合 【entry.jsp】 <og:plsqlUpdate command = "{@command}" names = "UNIQ,USRID,ECNO,EDBN" →PL/SQLに渡す引数(配列)のカラム名 dbType = "RK0271ARG" →PL/SQLに渡す引数(配列)の定義ファイル名 queryType = "JDBCPLSQL" > { call RKP0271E.RK0271E( ?,?,?,?,? )} →CALLするPL/SQL </og:plsqlUpdate> ＜＜参考＞＞ ・RKP0271E.RK0271E( ?,?,?,?,? )の｢?｣の意味 (RKP0271E.spc)------------------------------------------------------------ CREATE OR REPLACE PACKAGE RKP0271E AS PROCEDURE RK0271E( P_KEKKA OUT NUMBER -- 1個目の｢?｣⇒結果 0:正常 1:警告 2:異常 ,P_ERRMSGS OUT ERR_MSG_ARRAY -- 2個目の｢?｣⇒エラーメッセージ配列 ,P_NAMES IN VARCHAR2 -- 3個目の｢?｣⇒カラム名チェック用文字列 ,P_SYSARGS IN SYSARG_ARRAY -- 4個目の｢?｣⇒登録条件配列(改廃(A:追加/C:変更/D:削除)等がｾｯﾄされます) ,P_RK0271 IN RK0271ARG_ARRAY -- 5個目の｢?｣⇒登録データ配列 ・RK0271ARGの定義の仕方 (RK0271ARG.sql)------------------------------------------------------------ DROP TYPE RK0271ARG_ARRAY; CREATE OR REPLACE TYPE RK0271ARG AS OBJECT ( UNIQ VARCHAR2(11) ,USRID VARCHAR2(5) ,ECNO VARCHAR(7) ,EDBN VARCHAR(2) ) ; / CREATE OR REPLACE TYPE RK0271ARG_ARRAY AS VARRAY(100) OF RK0271ARG; /
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `CMD_ENTRY`
  command 引数に渡す事の出来る コマンド 登録"ENTRY"
  `protected String`
  `userDBType`
  引数のタイプ定義

  ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.QueryTag

  `CMD_NEW, CMD_RENEW, command, dispError, displayMsg, dyStart, ERR_MSG_ID, errCode, errMessage, executeCount, maxRowCount, names, outMessage, quotCheck, skipRowCount, sql, stopError, table, tableId, useSLabel, useTimeView, xssCheck`

  ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

  `BR, BUFFER_MIDDLE, CR`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport

  `bodyContent`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport

  `id, pageContext`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag

  `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag

  `EVAL_BODY_AGAIN`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag

  `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `PlsqlUpdateTag()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int`
  `doEndTag()`
  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
  `int`
  `doStartTag()`
  Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
  `protected void`
  `execute(Query query)`
  Query を実行します。
  `protected int[]`
  `getParameterRows()`
  表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。
  `protected void`
  `release2()`
  タグリブオブジェクトをリリースします。
  `void`
  `setDbType(String type)`
  【TAG】Queryオブジェクトに渡す引数のタイプ定義(例:type名_ARRAY)。
  `void`
  `setQueryType(String id)`
  【TAG】Query を発行する為のクラスIDを指定します()。
  `void`
  `setSelectedAll(String all)`
  【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。
  `void`
  `setTableModelCommit(String flag)`
  【TAG】テーブルモデルに対する確定処理を行うかどうかを指定します(初期値:true)。
  `String`
  `toString()`
  このオブジェクトの文字列表現を返します。

  ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.QueryTag

  `addPlaceValue, doAfterBody, getRequest, setCheckNames, setCommand, setDbid, setDispError, setDisplayMsg, setMainTrans, setMaxRowCount, setModifyType, setNames, setNotfoundMsg, setOutMessage, setOverflowMsg, setQuery, setQuotCheck, setSkipRowCount, setStopError, setStopZero, setTableId, setTrace, setUseBeforeHtmlTag, setUseSLabel, setUseTimeView, setXssCheck`

  ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

  `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport

  `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport

  `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag

  `getParent, setPageContext, setParent`

- ## フィールド詳細

  - ### CMD_ENTRY

    public static final String CMD_ENTRY
    command 引数に渡す事の出来る コマンド 登録"ENTRY"
    関連項目:
      - 定数フィールド値

  - ### userDBType

    protected String userDBType
    引数のタイプ定義

- ## コンストラクタの詳細

  - ### PlsqlUpdateTag

    public PlsqlUpdateTag()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### doStartTag

    public int doStartTag()
    Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    定義:
      `doStartTag` インタフェース内 `Tag`
    オーバーライド:
      `doStartTag` クラス内 `QueryTag`
    戻り値:
      後続処理の指示
    変更履歴:
      6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

  - ### doEndTag

    public int doEndTag()
    Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    定義:
      `doEndTag` インタフェース内 `Tag`
    オーバーライド:
      `doEndTag` クラス内 `QueryTag`
    戻り値:
      後続処理の指示
    変更履歴:
      3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソッドを利用, 3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。, 3.6.1.0 (2005/01/05) オーバーフロー時と登録件数の表示をコメントします。, 4.3.3.0 (2008/09/22) 検索結果を、"DB.ERR_CODE" キーでリクエストにセットする。, 4.3.3.0 (2008/09/22) 属性 stopError の設定により、JSP処理を中止するかどうかを制御します。, 4.3.5.7 (2009/03/22) アクセスカウント不具合対応, 6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応, 6.4.1.2 (2016/01/22) QueryTag.errMsgId → QueryTag.ERR_MSG_ID refactoring, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。, 5.9.26.1 (2017/11/10) dispError対応, 6.9.9.0 (2018/08/20) ｢ERR0041:検索処理中に割り込みの検索要求がありました｣エラーを、標準のErrorMessageに追加するようにします。, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。

  - ### release2

    protected void release2()
    タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
    オーバーライド:
      `release2` クラス内 `QueryTag`
    変更履歴:
      2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.5.2.0 (2003/10/20) sysDBType 廃止。SYSARG は、システムパラメータ で定義します。, 5.5.5.2 (2012/08/10) isTableModelCommit追加

  - ### execute

    protected void execute(Query query)
    Query を実行します。
    オーバーライド:
      `execute` クラス内 `QueryTag`
    パラメータ:
      `query` - オブジェクト
    変更履歴:
      2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更, 3.5.0.0 (2003/09/17) カラム名ではなく、カラム番号を先に求めておく方式に変更。, 3.5.2.0 (2003/10/20) 内部オブジェクトタイプ名を システムパラメータ で定義します。, 3.5.4.2 (2003/12/15) HTMLTableViewForm クラス名変更(⇒ ViewForm_HTMLTable), 3.5.6.0 (2004/06/18) DBRowHeader のパッケージプライベート化に伴なう変更, 4.0.0.0 (2005/01/31) setArguments 廃止、Query#execute に、引数をすべて追加, 4.3.0.0 (2008/07/22) DBSysArgの引数に日付、PG、ユーザーIDを追加, 5.5.5.2 (2012/08/10) isTableModelCommitによるテーブルモデル確定処理のコントロール, 6.4.2.0 (2016/01/29) DateSet.getDate( String ) を利用するように修正します。

  - ### getParameterRows

    protected int[] getParameterRows()
    表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。
    オーバーライド:
      `getParameterRows` クラス内 `CommonTagSupport`
    戻り値:
      選択行の配列
    変更履歴:
      4.0.0.0 (2005/01/31) getParameterRows() を使用するように変更
    このﾒｿｯﾄﾞは、nullを返しません

  - ### setDbType

    public void setDbType(String type)
    【TAG】Queryオブジェクトに渡す引数のタイプ定義(例:type名_ARRAY)。
    パラメータ:
      `type` - 定義のPL/SQL名
    説明:
      ここでは、type 定義のPL/SQL名を指定します。 行を表す配列は、type名_ARRAY という名称です。

  - ### setSelectedAll

    public void setSelectedAll(String all)
    【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。
    パラメータ:
      `all` - データを全件選択済み [true:全件選択済み/false:通常]
    説明:
      全てのデータを選択済みデータとして扱って処理します。 全件処理する場合に、(true/false)を指定します。 初期値は false です。

  - ### setQueryType

    public void setQueryType(String id)
    【TAG】Query を発行する為のクラスIDを指定します()。
    オーバーライド:
      `setQueryType` クラス内 `QueryTag`
    パラメータ:
      `id` - Queryを発行する為の実クラスID
    関連項目:
      - `Queryのサブクラス`
      - `Query.execute(String,String, DBSysArg[], DBUserArg[])`
    変更履歴:
      3.5.4.2 (2003/12/15) JavaDocコメント用にメソッド追加。
    説明:
      引数指定のINSERT/UPDATE文を実行する場合の、queryType 属性を使用します。 このタグでは、execute( String ,String , DBSysArg[] , DBUserArg[] )を実行します。 代表的なクラスとして、"JDBCPLSQL" が標準で用意されています。 タグにより使用できる/出来ないがありますが、これは、org.opengion.hayabusa.db 以下の Query_**** クラスの **** を与えます。 これらは、Query インターフェースを継承したサブクラスです。

  - ### setTableModelCommit

    public void setTableModelCommit(String flag)
    【TAG】テーブルモデルに対する確定処理を行うかどうかを指定します(初期値:true)。
    パラメータ:
      `flag` - テーブルモデルの確定処理 [true:する/false:しない]
    変更履歴:
      5.5.5.2 (2012/08/10) 新規作成
    説明:
      PlsqlUpdateタグで、エラーがなかった場合は通常、テーブルモデルの改廃に従って処理が行われます。 （改廃Dについては削除処理を行い、その他については改廃を元に戻す） このパラメータをfalseに指定すると、テーブルモデルに対する処理を行いません。 これは、例えばPL/SQLでエラーチェックのみを行いたい場合に有効です。 初期値はtrue(処理を行う）です。

  - ### toString

    public String toString()
    このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
    オーバーライド:
      `toString` クラス内 `QueryTag`
    戻り値:
      このクラスの文字列表現
    このﾒｿｯﾄﾞは、nullを返しません