Symfoware/RDB連携時の取得定義、簡易取得定義の構文について説明します。
記述形式は、以下の表記方法により構文を示しています。
< >
構文を構成する要素の名前を示します。ある要素は、さらに他の要素によって詳細に定義されることがあります。
:: =
この記号の左側の要素が、右側の要素によって定義されることを示します。
[ ]
省略可能な要素を示します。
{ }
要素のまとまりを示します。また、{}内に書かれているいくつかの要素のうちの1つを選択することを示す場合にも使用します。選択できる要素は | で区切って記述します。
|
縦棒の後ろに続く要素が、縦棒の前の要素の代わりに記述できることを示します。
…
前の要素が繰り返されることを示します。この記号が{}で囲まれた形式の部分の直後に記述されている場合は、{ }で囲まれた部分の繰り返しを示します。
( )
構文の表記記号ではなく、構文を構成する文字の1つです。示されている位置に正しく記述する必要があります。
また、記述形式だけでは表現できない内容については構文規則で、指定値の説明については一般規則で補足します。
記述形式
<取得定義>:: =
LOGFMT <取得定義名>
[ { <取得対象情報> | <DSI情報> }… ]
[ <ジャーナル・チェックポイント情報> ]
[ <コメント> ] ;
<取得対象情報>:: =
{ <取得対象詳細情報> | <システム取得項目情報> }
<取得対象詳細情報>:: =
TABLE <テーブル識別情報>
( <列情報> [ { , <列情報> } … ] )
<システム取得項目情報>:: =
SYSITEM <システム取得項目> [ { , <システム取得項目> } … ]
<DSI情報>:: =
DSI <テーブル識別情報> <DSI名> [ { , <DSI名> } … ]
<ジャーナル・チェックポイント情報>:: =
CHECKPOINT <ジャーナル・チェックポイント名> [ { , <ジャーナル・チェックポイント名> } … ]
<コメント>:: =
COMMENT <コメント文>
<テーブル識別情報>:: =
<データベース名>.<スキーマ名>.<テーブル名>
<列情報>:: =
<項目名> : <列名> <データ型> [ <列編集情報> ]
<列編集情報>:: =
CONV = ( <列編集指示> )
構文規則
取得定義名は、TJNL内で一意でなければなりません。
項目名は、取得定義内で一意でなければなりません。
取得定義内で同一列を取得対象として複数指定することはできません。
取得定義内で同一DSIを取得対象として複数指定することはできません。
取得定義内で同一ジャーナル・チェックポイントを複数指定することはできません。
取得定義内で取得対象詳細情報として指定されていないテーブルのDSIを取得対象として定義することはできません。
取得定義の追加および変更を行う場合、<取得対象詳細情報>を省略することはできません。
<取得対象詳細情報>には、1つ以上の<列情報>を含めなくてはなりません。
一般規則
取得定義名には、取得定義を識別するための任意の名前を指定します。
テーブル識別情報には、取得対象となるデータベースの名前、スキーマの名前、テーブルの名前を指定します。データベースの名前、スキーマの名前、テーブルの名前は、Symfoware/RDBに定義するデータベース名、スキーマ名、テーブル名を指定します。
列名には、取得対象となる列の名前を指定します。列の名前は、Symfoware/RDBに定義する列名を指定します。
データ型には、取得対象となる列のデータ型を指定します。データ型は、Symfoware/RDBに定義するデータ型を指定します。
項目名には、取得対象列を識別するための任意の名前を指定します。
システム取得項目情報を省略した場合、システム取得項目は取得されません。
DSI名には、取得対象となるDSIの名前を指定します。DSIの名前は、Symfoware/RDBに定義するDSI名を指定します。
取得定義内で取得対象詳細情報として指定されているテーブルのDSI情報を省略した場合、そのテーブルに定義されているすべてのDSIが取得対象となります。
ジャーナル・チェックポイント名には、配付を要求するジャーナル・チェックポイントの名前を指定します。
ジャーナル・チェックポイント情報を省略した場合、ジャーナル・チェックポイントの配付は要求されません。
コメント文には、取得定義に対する任意の説明文を指定します。
記述形式
<簡易取得定義>:: =
SIMPLEFMT <簡易取得定義名>
[{<簡易取得対象情報> | <DSI情報>} …]
[ <ジャーナル・チェックポイント情報> ]
[ <コメント> ] ;
<簡易取得対象情報>:: =
{ <簡易取得対象詳細情報> | <システム取得項目情報> }
<簡易取得対象詳細情報>:: =
TABLE <テーブル識別情報>
{ ( <簡易列情報> [ { , <簡易列情報> } … ] ) | ALL }
<システム取得項目情報>:: =
SYSITEM <システム取得項目> [ { , <システム取得項目> } … ]
<DSI情報>:: =
DSI <テーブル識別情報> <DSI名> [ { , <DSI名> } … ]
<ジャーナル・チェックポイント情報>:: =
CHECKPOINT <ジャーナル・チェックポイント名> [ { , <ジャーナル・チェックポイント名> } … ]
<コメント>:: =
COMMENT <コメント文>
<テーブル識別情報>:: =
<データベース名>.<スキーマ名>.<テーブル名>
<簡易列情報>:: =
[ <項目名> : ] <列名> [ <データ型> ]
一般規則
簡易取得定義名には、簡易取得定義を識別するための任意の名前を指定します。
簡易取得定義名は、取得定義名となります。
テーブル識別情報には、取得対象となるデータベースの名前、スキーマの名前、テーブルの名前を指定します。データベースの名前、スキーマの名前、テーブルの名前は、Symfoware/RDBに定義するデータベース名、スキーマ名、テーブル名を指定します。
列名には、取得対象となる列の名前を指定します。列の名前は、Symfoware/RDBに定義する列名を指定します。
データ型には、取得対象となる列のデータ型を指定します。データ型は、Symfoware/RDBに定義するデータ型を指定します。
データ型を省略した場合、Symfoware/RDBに定義されているデータ型で取得定義を生成します。
項目名には、取得対象列を識別するための任意の名前を指定します。
項目名を省略した場合、列名を項目名として取得定義を生成します。ただし、項目名の重複はチェックされません。生成された取得定義を変更してください。
簡易取得対象詳細情報にALLを指定した場合、Symfoware/RDBに定義されているすべての列を取得対象列として、取得定義を生成します。
システム取得項目情報を省略した場合、システム取得項目は取得されません。
DSI名には、取得対象となるDSIの名前を指定します。DSIの名前は、Symfoware/RDBに定義するDSI名を指定します。
取得定義内で取得対象詳細情報として指定されているテーブルのDSI情報を省略した場合、そのテーブルに定義されているすべてのDSIが取得対象となります。
ジャーナル・チェックポイント名には、配付を要求するジャーナル・チェックポイントの名前を指定します。
ジャーナル・チェックポイント情報を省略した場合、ジャーナル・チェックポイントの配付は要求されません。
コメント文には、取得定義に対する任意の説明文を指定します。
記述形式
<取得定義名>:: =
<TJNL識別子>
<項目名>:: =
<RDB識別子>
<データベース名>:: =
<RDB識別子>
<スキーマ名>:: =
<RDB識別子>
<テーブル名>:: =
<RDB識別子>
<列名>:: =
<RDB識別子>
<DSI名>:: =
<RDB識別子>
{ <TJNL識別子> [ <ワイルドカード> ] }
| <ワイルドカード>
<コメント文>:: =
-- 構文規則を参照してください
構文規則
取得定義名は、英字で始まる必要があります。
取得定義名を構成する文字数は12バイト以内です。
データベース名、スキーマ名、テーブル名、列名、DSI名を構成する文字数は36バイト以内です。
コメント文には、二重引用符(”)で囲んだ文字列を指定します。コメント文中に二重引用符(”)を使用することはできません。
コメント文を構成する文字数は127バイト以内です。
ジャーナル・チェックポイント名を構成する文字数は32バイト以内です。
キーワードを取得定義名、ジャーナル・チェックポイント名として使用する場合には、キーワードを二重引用符(”)で囲みます。キーワードの種類については、"表B.35 キーワード一覧"を参照してください。
一般規則
ジャーナル・チェックポイント名にワイルドカードのみを指定した場合、すべてのジャーナル・チェックポイントの配付を要求します。
ジャーナル・チェックポイント名にワイルドカードを使用した場合、ワイルドカードは、任意の1文字以上の文字となり、一致するジャーナル・チェックポイントの配付を要求します。
記述形式
<トークン>::=
<非区切りトークン>
| <区切りトークン>
<非区切りトークン>::=
<RDB識別子>
| <TJNL識別子>
| <キーワード>
<キーワード>::=
-- 構文規則を参照してください
<RDB識別子>::=
<通常識別子>
| <区切り識別子>
<通常識別子>:: =
<識別子体>
| <拡張識別子>
| <各国語文字識別子>
<識別子体>:: =
<英字> [ { <下線> | <英字または数字> } … ]
<英字または数字>:: =
<英字>
| <数字>
<拡張識別子>:: =
<拡張先頭> [ { <下線> | <拡張文字または数字> } … ]
<拡張先頭>:: =
<拡張文字>
| <英字>
<拡張文字または数字>:: =
<英字>
| <数字>
| <拡張文字>
<各国語文字識別子>::=
<各国語文字> [ <各国語文字>… ]
<区切り識別子>:: =
”<識別子体>”
<TJNL識別子>:: =
{ <英字> | <数字> | <下線> | <アットマーク> } …
<区切りトークン>:: =
,| ( | ) | . | : | ;
<分離記号>:: =
{ <注釈>|<空白> } …
<注釈導入子>:: =
--
<注釈>:: =
-- 構文規則を参照してください
構文規則
すべてのトークンの後ろに分離記号を指定できます。非区切りトークンの後ろには区切りトークンまたは分離記号を指定することが必要です。
キーワードをRDB識別子として使用する場合には、キーワードを二重引用符(”)で囲みます。キーワードの種類については、"表B.35 キーワード一覧"を参照してください。なお、キーワードは英大文字と英小文字の区別はされません。
各国語文字識別子に指定する各国語文字のコードは、自システムの文字コード系のコードセット1(2バイト)です。OSの文字コードがUNICODEの場合、各国語文字はUNICODEの仕様に従います。
各国語文字識別子に、各国語文字の空白は含められません。
RDB識別子に英小文字を指定した場合、英大文字に変換して扱います。ただし、各国語文字の変換は行いません。また、各国語文字の英小文字と英大文字は等価と扱いません。
空白は、ASCIIコードの0x09~0x0dと0x20です。
注釈には、注釈導入子で始まる文字列を指定します。
注釈は、任意の場所に指定できます。注釈導入子を指定した位置から、その行の終わりまでが注釈となります。1行すべてが注釈でもかまいません。
記述形式
<数字>::=
0|1|2|3|4|5|6|7|8|9
<英字>::=
<英大文字>
|<英小文字>
<英大文字>::=
A|B|C|D|E|F|G|H|I|J|K|L|M
|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
<英小文字>::=
a|b|c|d|e|f|g|h|i|j|k|l|m
|n|o|p|q|r|s|t|u|v|w|x|y|z
<拡張文字>::=
@|\|#
<各国語文字>::=
-- 構文規則を参照してください
<下線> :: =
_
<アットマーク>:: =
@
<ワイルドカード>:: =
*
構文規則
各国語文字は、日本語の文字を表します。
各国語文字のコードは、自システムの文字コード系のコードセット1(2バイト)です。OSの文字コードがUNICODEの場合、各国語文字はUNICODEの仕様に従います。
記述形式
<データ型>:: =
<文字列型>
|<各国語文字列型>
|<真数型>
|<概数型>
|<日時型>
|<時間隔型>
|<透過文字列型>
<文字列型>:: =
CHARACTER[VARYING][(<長さ>)]
|CHAR[VARYING][(<長さ>)]
|VARCHAR[(<長さ>)]
<各国語文字列型>::=
NATIONAL CHARACTER[VARYING][(<長さ>)]
|NATIONAL CHAR [VARYING][(<長さ>)]
|NCHAR [VARYING][(<長さ>)]
<真数型>::=
NUMERIC[(<精度>[,<位取り>])]
|DECIMAL[(<精度>[,<位取り>])]
|DEC[(<精度>[,<位取り>])]
|INTEGER
|INT
|SMALLINT
<概数型>::=
FLOAT[(<精度>)]
|REAL
|DOUBLE PRECISION
<日時型>::=
DATE
|TIME
|TIMESTAMP
<時間隔型>::=
INTERVAL<時間隔修飾子>
<透過文字列型>:: =
BINARY(<長さ>)
<長さ>::=
<符号なし整数>
<精度>::=
<符号なし整数>
<位取り>::=
<符号なし整数>
<時間隔先行フィールド精度>::=
<符号なし整数>
構文規則
CHARとCHARACTERは同じ意味です。
VARCHARとCHARACTER VARYINGおよびCHAR VARYINGは同じ意味です。
NCHARとNATIONAL CHARおよびNATIONAL CHARACTERは同じ意味です。
DECとDECIMALは同じ意味です。
INTとINTEGERは同じ意味です。
INTEGERとSMALLINTの精度は31と15です。
FLOATは、指定した精度によってREALまたはDOUBLE PRECISIONが指定されたものとみなします。精度が1~23のときはREALに、24~52のときにはDOUBLE PRECISIONに対応します。
長さ、精度、および位取りの最小値、最大値、および省略値を"表B.27 長さ、精度、および位取りの最小値、最大値、および省略値"に示します。
要素指定 | 対象項目 | 最小値 | 最大値 | 省略値 |
---|---|---|---|---|
VARCHAR(n) | n:長さ | 1 | 32000 | 1 |
CHAR(n) | n:長さ | 1 | 32000 | 1 |
NCHAR VARYING(n) | n:長さ | 1 | 16000 | 1 |
NCHAR(n) | n:長さ | 1 | 16000 | 1 |
NUMERIC(p,q) | p:精度 | 1 | 18 | 18 |
q:位取り | 0 | (注1) | 0 | |
DECIMAL(p,q) | p:精度 | 1 | 18 | 18 |
q:位取り | 0 | (注1) | 0 | |
FLOAT(p) | p:精度 | 1 | 52 | 52 |
BINARY(n) | n:長さ(注2) | 1 | 32000 | なし |
注1)精度を超えることはできません。
注2)バイト数を指定します。
一般規則
<透過文字列型>を指定した列は、<文字列型>または<各国語文字列型>としてSymfoware/RDBに定義する必要があります。
<透過文字列型>に指定した長さと、Symfoware/RDBに定義する<文字列型>または<各国語文字列型>のバイト数が一致する必要があります。各データ型のバイト数については、"B.2 データ型対応関係"を参照してください。
記述形式
<列編集指示>:: =
SIGN(OFF) | SIZE(長さ)
<長さ>::=
<符号なし整数>
構文規則
長さの最小値、最大値を"表B.28 長さの最小値、最大値"に示します。
属性 | データ型 | 最小値 | 最大値 |
---|---|---|---|
固定長文字列 | CHAR | 1 | 32000 |
可変長文字列 | VCHAR | 1 | 32000 |
一般規則
列編集指示の指定可否を"表B.29 列編集指示の指定可否"に示します。
属性 | データ型 | 列編集指示の指定可否 | |
---|---|---|---|
SIGN(OFF) | SIZE(長さ) | ||
固定長文字列 | CHAR | × | ○ |
可変長文字列 | VCHAR | × | ○ |
固定長各国語文字列 | NCHAR | × | × |
可変長各国語文字列 | NCHAR VARYING | × | × |
外部10進数 | NUMERIC | ○ | × |
内部10進数 | DECIMAL | ○ | × |
単精度浮動小数点数 | REAL | × | × |
倍精度浮動小数点数 | DOUBLE | × | × |
浮動小数点数 | REAL | × | × |
DOUBLE | × | × | |
2進整数 | SMALLINT | × | × |
INTEGER | × | × | |
日付、時刻 | DATE | × | × |
TIME | × | × | |
TIMESTAMP | × | × | |
時間隔 | INTERVAL | × | × |
透過文字列 | BINARY | × | × |
○:指定可
×:指定不可
記述形式
<システム取得項目>:: =
<全システム取得項目>
| { <更新資源名>|<格納構造名>|<時刻>|<トランザクション識別子>
| <トランザクション状態>|<DB種別>|<DB操作> }
<全システム取得項目>:: =
TJNLSYSALL
<更新資源名>:: =
TJNLRESOURCE
<格納構造名>:: =
TJNLSTORAGE
<時刻>:: =
TJNLTIME
TJNLTRNID
<トランザクション状態>:: =
TJNLSTS
<DB種別>:: =
TJNLDBKIND
<DB操作>:: =
TJNLDBOP
一般規則
<全システム取得項目>を指定した場合、以下の順序で各システム取得項目が展開されます。
a) <更新資源名>
b) <格納構造名>
c) <時刻>
d) <トランザクション識別子>
e) <トランザクション状態>
f) <DB種別>
g) <DB操作>
システム取得項目と対応するデータ属性については、"B.6 システム取得項目のデータ型対応表"を参照してください。
記述形式
<符号なし整数>::=
<数字>…
<時間隔修飾子>::=
<開始フィールド> TO <終了フィールド>
|<単一日時フィールド>
<開始フィールド>::=
<非秒日時フィールド>[(<時間隔先行フィールド精度>)]
<終了フィールド>::=
<非秒日時フィールド>
|SECOND
<単一日時フィールド>::=
<非秒日時フィールド>[(<時間隔先行フィールド精度>)]
|SECOND [(<時間隔先行フィールド精度>)]
<非秒日時フィールド>::=
YEAR
|MONTH
|DAY
|HOUR
|MINUTE
構文規則
時間隔先行フィールド精度は、1以上9以下の符号なし整数で指定します。
日時フィールドには順位があります。その順位は、最上位のものから最下位のものの順に、YEAR、MONTH、DAY、HOUR、MINUTE、SECONDです。
開始フィールドは終了フィールドより上位であることが必要です。
時間隔修飾子は、年月クラスと日時クラスに分類されます。各クラスにまたがるような日時フィールドを持つような指定はできません。
年月クラスは、以下のいずれかです。
開始フィールドおよび終了フィールドにより指定された年および月からなる連続する日時フィールド
単一日時フィールドにより指定される年または月の単一日時フィールド
年月クラスを"表B.30 年月クラス"および"表B.31 年月クラス(単一日時フィールド)"に示します。
開始フィールド | 終了フィールド |
---|---|
YEAR | MONTH |
単一日時フィールド |
---|
YEAR |
MONTH |
日時クラスは、以下のいずれかです。
開始フィールドおよび終了フィールドにより指定された日、時、分および秒からなる連続する任意の日時フィールド
単一日時フィールドにより指定される日、時、分および秒の単一日時フィールド
日時クラスを"表B.32 日時クラス"および"表B.33 日時クラス(単一日時フィールド)"に示します。
開始フィールド | 終了フィールド |
---|---|
DAY | HOUR |
HOUR | MINUTE |
MINUTE | SECOND |
単一日時フィールド |
---|
DAY |
HOUR |
MINUTE |
SECOND |
時間隔先行フィールド精度の省略値を"表B.34 時間隔先行フィールド精度の省略値"に示します。
開始フィールドまたは | 時間隔先行フィールド精度の省略値 |
---|---|
YEAR | 2 |
MONTH | 2 |
DAY | 2 |
HOUR | 2 |
MINUTE | 2 |
SECOND | 2 |
"表B.35 キーワード一覧"にキーワードの一覧を示します。
【A】 【B】 【C】 【D】 【E】
| 【F】 【G】 【H】 【I】 【J】 【K】 【L】 【M】 【N】 【O】
| 【P】 【R】 【S】 【T】 【U】 【V】 【W】 【Y】 【Z】
|