public class DirectTableInsertTag extends ReadTableTag
指定のファイルを直接データベースに登録するデータ入力タグです。 通常の readTable などは、DBTableModelオブジェクトを介して全件メモリに ロードしてから表示させる為、大量データ処理ができません。 このタグでは、直接ファイルを読み取りながらデータベース登録するので 大量データをバッチ的に登録する場合に使用します。 読み取るファイルは、先頭(または実データが現れるまでに) #NAME 行が必要です。 これは、ファイルデータのカラム名を指定しています。また、columns 属性を使用すれば、 ファイルの#NAME 行より優先して(つまり存在していなくても良い)データのカラム名を 指定することが出来ます。 この#NAME 行は、ファイルのセパレータと無関係に必ずタブ区切りで用意されています。 タグのBODY部に、実行するSQL文を記述します。 このSQL文は、 INSERT INTO GE41 (CLM,NAME_JA,SYSTEM_ID,FGJ,DYSET) VALUES ([CLM],[NAME_JA],[SYSTEM_ID],'1','{@USER.YMDH}') と、いう感じで、ファイルから読み込んだ値は、[カラム名]に割り当てられます。 もちろん、通常の固定値(FGJに'1'をセット)や、リクエスト変数(DYSETの{@USER.YMDH}) なども使用できます。 ※ 6.2.3.0 (2015/05/01) BODY部にSQL文を記述しない場合は、table 属性に、INSERTするテーブルIDを指定します。 ※ 6.2.4.0 (2015/05/15) omitNames に、WRITABLE と ROWID を、強制的に含めます(無条件)。 ※ このタグは、Transaction タグの対象です。
●形式:<og:directTableInsert filename="[・・・]" ・・・ >INSERT INTO ・・・ </og:directTableInsert > ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:directTableInsert readerClass 【TAG】実際に読み出すクラス名の略称(TableReader_**** の ****)をセットします (初期値:TABLE_READER_DEFAULT_CLASS[=AutoReader]) 専 commitBatch 【TAG】指定数毎にコミットを発行します(初期値:0 終了までコミットしません) 専 dbid 【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT) 専 table 【TAG】BODYのSQL文を指定しない場合に使用するテーブルIDを指定します command 【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW) fileURL 【TAG】読取元ディレクトリ名を指定します(初期値:FILE_URL) filename 【TAG】ファイルを作成するときのファイル名をセットします (初期値:FILE_FILENAME[=file.xls]) encode 【TAG】ファイルを作成するときのファイルエンコーディング名をセットします(初期値:FILE_ENCODE) skipRowCount 【TAG】(通常は使いません)データの読み飛ばし件数を設定します maxRowCount 【TAG】読取時の最大取り込み件数をセットします (初期値:0:[無制限]) errRowCount 【TAG】読取時の最大エラー件数をセットします (初期値:200)(0:[無制限]) separator 【TAG】可変長ファイルを作成するときの項目区切り文字をセットします columns 【TAG】読取元ファイルのカラム列を、外部(タグ)よりCSV形式で指定します omitNames 【TAG】読取対象外のカラム列を、外部(タグ)よりCSV形式で指定します modifyType 【TAG】ファイル取り込み時の モディファイタイプ(A(追加),C(更新),D(削除))を指定します displayMsg 【TAG】query の結果を画面上に表示するメッセージIDを指定します(初期値:VIEW_DISPLAY_MSG[=])) overflowMsg 【TAG】読取データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました]) notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした]) ※ sheetName 【TAG】EXCELファイルを読み込むときのシート名を設定します(初期値:指定なし) ※ sheetNos 【TAG】EXCELファイルを読み込むときのシート番号を複数設定できます(初期値:0) ※ sheetConstKeys 【TAG】EXCELファイルを読み込むときの固定値となるカラム名(CSV形式) ※ sheetConstAdrs 【TAG】EXCELファイルを読み込むときの固定値となるアドレス(行-列,行-列,・・・) nullBreakClm 【TAG】カラム列に NULL が現れた時点で読取を中止します(複数Sheetの場合は、次のSheetを読みます)。 nullSkipClm 【TAG】カラム列に NULL が現れたレコードは読み飛ばします。 useNumber 【TAG】行番号情報を、使用している/していない[true/false]を指定します(初期値:true) useRenderer 【TAG】読取処理でKEY:VAL形式のコードリソースから、KEYを取り出す処理を行うかどうかを指定します(初期値:USE_TABLE_READER_RENDERER[=false]) adjustColumns 【TAG】読取元ファイルのデータ変換を行うカラム列をカンマ指定します checkColumns 【TAG】読取元ファイルの整合性チェックを行うカラム列をカンマ指定します nullCheck 【TAG】NULL チェックすべきカラム列をCSV形式(CSV形式)で指定します matchKeys 【TAG】レコードの読取条件指定時のカラム列をCSV形式で指定します 6.4.6.0 (2016/05/27) matchVals 【TAG】レコードの読取条件指定時のカラム列に対応する正規表現データをCSV形式で指定します 6.4.6.0 (2016/05/27) language 【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します stopZero 【TAG】読込件数が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) mainTrans 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false) tableId 【TAG】(通常は使いません)sessionから所得する DBTableModelオブジェクトの ID scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=true])。 useSLabel 【TAG】7.0.7.0 (2019/12/13) エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 5.7.7.2 (2014/06/20) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 5.7.7.2 (2014/06/20) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) 5.7.7.2 (2014/06/20) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) 5.7.7.2 (2014/06/20) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:directTableInsert> ●使用例 <og:directTableInsert dbid = "ORCL" 接続データベースID(初期値:DEFAULT) separator = "," ファイルの区切り文字(初期値:タブ) fileURL = "{@USER.ID}" 読み取り元ディレクトリ名 filename = "{@filename}" 読み取り元ファイル名 encode = "Shift_JIS" 読み取り元ファイルエンコード名 displayMsg = "MSG0040" 登録完了後のメッセージ columns = "CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG" #NAME の代わりに使用するカラム列名 commitBatch = "100" この件数ずつコミットを発行(初期値:無制限) useColumnCheck = "true" カラムチェックを行うかどうか(初期値:false) useColumnAdjust = "true" カラム変換を行うかどうか(初期値:false) nullCheck = "CLM,SYSTEM_ID" NULLチェックを実行します。 > INSERT INTO GE41 (CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG, FGJ,DYSET,DYUPD,USRSET,USRUPD,PGUPD) VALUES ([CLM],[NAME_JA],[LABEL_NAME],[KBSAKU],[SYSTEM_ID],[LANG], '1','{@USER.YMDH}','{@USER.YMDH}','{@USER.ID}','{@USER.ID}','{@GUI.KEY}') </og:directTableInsert >
ReadTableTag.ColumnAction
clmAct, CMD_NEW, CMD_RENEW, columns, displayMsg, encode, executeCount, maxRowCount, nullBreakClm, nullSkipClm, readerClass, separator, sheetConstAdrs, sheetConstKeys, sheetName, sheetNos, skipRowCount, sqlError, stopZero, useNumber, useSLabel
BR, BUFFER_MIDDLE, CR
bodyContent
id, pageContext
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
EVAL_BODY_AGAIN
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
コンストラクタと説明 |
---|
DirectTableInsertTag()
デフォルトコンストラクター
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected int |
afterEnd()
#doEndTag() の後続処理を記述します。
|
protected void |
create(java.io.File file)
ファイルオブジェクト より読み込み、データベースに書き込みます。
|
int |
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
|
int |
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setCommitBatch(java.lang.String cmtBat)
【TAG】指定数毎にコミットを発行します(初期値:0 終了までコミットしません)。
|
void |
setDbid(java.lang.String id)
【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT)。
|
void |
setTable(java.lang.String tbl)
【TAG】BODYのSQL文を指定しない場合に使用するテーブルIDを指定します。
|
void |
setUseTimeView(java.lang.String flag)
【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します
(初期値:VIEW_USE_TIMEBAR[=])。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
addOmitNames, doEndTag, setAdjustColumns, setCheckColumns, setColumns, setCommand, setDisplayMsg, setEncode, setErrRowCount, setFilename, setFileURL, setMainTrans, setMatchKeys, setMatchVals, setMaxRowCount, setModifyType, setNotfoundMsg, setNullBreakClm, setNullCheck, setNullSkipClm, setOmitNames, setOverflowMsg, setReaderClass, setSeparator, setSheetConstAdrs, setSheetConstKeys, setSheetName, setSheetNos, setSkipRowCount, setStopZero, setTableId, setUseNumber, setUseRenderer, setUseSLabel
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getParent, setPageContext, setParent
public DirectTableInsertTag()
public int doStartTag()
doStartTag
インタフェース内 Tag
doStartTag
クラス内 CommonTagSupport
public int doAfterBody()
doAfterBody
インタフェース内 IterationTag
doAfterBody
クラス内 CommonTagSupport
protected int afterEnd()
afterEnd
クラス内 ReadTableTag
protected void release2()
release2
クラス内 ReadTableTag
protected void create(java.io.File file)
create
クラス内 ReadTableTag
file
- ファイルオブジェクトpublic void setDbid(java.lang.String id)
id
- データベース接続IDpublic void setCommitBatch(java.lang.String cmtBat)
cmtBat
- コミットを発行する行数 (初期値:0)public void setTable(java.lang.String tbl)
tbl
- テーブルIDpublic void setUseTimeView(java.lang.String flag)
flag
- 処理時間を表示 [true:する/false:しない]public java.lang.String toString()
toString
クラス内 ReadTableTag
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.