4.23 GETENV
@GETENV
ファンクションでは、Oracle GoldenGate環境に関する情報を返します。この情報は、次への入力として使用できます。
-
ストアド・プロシージャまたは問合せ(
SQLEXEC
を使用) -
列マップ(
TABLE
またはMAP
のCOLMAP
オプションを使用) -
ユーザー・トークン(
TABLE
のTOKENS
オプションで定義され、@TOKEN
ファンクションによってターゲット列にマッピング済) -
GET_ENV_VALUE
ユーザー・イグジット・ファンクション(GET_ENV_VALUEを参照)ノート:
構文オプションは、構文の説明に示されているとおり、すべて引用符で囲む必要があります。
構文
@GETENV ( 'LAG' , 'unit
' | 'LASTERR' , 'error_info
' | 'JULIANTIMESTAMP' | 'JULIANTIMESTAMP_PRECISE' | 'RECSOUTPUT' | {'STATS'|'DELTASTATS'}, ['TABLE', 'table
'], 'statistic
' | 'GGENVIRONMENT', 'environment_info
' | 'GGFILEHEADER', 'header_info
' | 'GGHEADER', 'header_info
' | 'RECORD', 'location_info
' | 'DBENVIRONMENT', 'database_info
' 'TRANSACTION', 'transaction_info
' | 'OSVARIABLE', 'variable
' | 'TLFKEY', SYSKEY,unique_key
'USERNAME', 'OSUSERNAME', 'MACHINENAME', 'PROGRAMNAME', 'CLIENTIDENTIFIER', )
'LAG' , '
unit
'
ExtractおよびReplicatに有効です。
@GETENV
のLAG
オプションでは、ラグ情報を返します。ラグは、ExtractまたはReplicatがレコードを処理した時間と、データ・ソースのそのレコードのタイムスタンプとの差異です。
構文
@GETENV ('LAG', {'SEC
'|'MSEC'|'MIN'})
'LASTERR' , '
error_info
'
Replicatに有効です。
@GETENV
のLASTERR
オプションでは、Replicatが最後に失敗した操作の情報を返します。
構文
@GETENV ('LASTERR', {'DBERRNUM'|'DBERRMSG'|'OPTYPE'|'ERRTYPE'})
-
'DBERRNUM'
-
失敗した操作に関連するデータベース・エラー番号を返します。
-
'DBERRMSG'
-
失敗した操作に関連するデータベース・エラー・メッセージを返します。
-
'OPTYPE'
-
試行した操作タイプを返します。Oracle GoldenGate操作タイプのリストは、『Oracle GoldenGateの管理』を参照してください。
-
'ERRTYPE'
-
エラーのタイプを返します。次のような結果になります。
-
DB
(データベース・エラーの場合) -
MAP
(マッピング・エラーの場合)
-
'JULIANTIMESTAMP'
| 'JULIANTIMESTAMP_PRECISE'
ExtractおよびReplicatに有効です。
@GETENV
のJULIANTIMESTAMP
オプションでは、現在の時刻をユリウス形式で返します。単位はマイクロ秒(百万分の1秒)です。Windowsのタイムスタンプはミリ秒(1000分の1秒)の粒度を使用するので、Windowsマシンでは値にゼロが埋め込まれます。次に、一般的な列マッピングの例を示します。
MAP dbo.tab8451, Target targ.tabjts, COLMAP (USEDEFAULTS, & JTSS = @GETENV ('JULIANTIMESTAMP') JTSFFFFFF = @date ('yyyy-mm-dd hh:mi:ss.ffffff', 'JTS', & @getenv ('JULIANTIMESTAMP') ) ) ;
JTSS
およびJTSFFFFFF
列は、次のような値になります。
212096320960773000 2010-12-17:16:42:40.773000 212096321536540000 2010-12-17:16:52:16.540000 212096322856385000 2010-12-17:17:14:16.385000 212096323062919000 2010-12-17:17:17:42.919000 212096380852787000 2010-12-18:09:20:52.787000
数字の最後の3桁(マイクロ秒)はすべて、埋め込まれたゼロが含まれています。
'JULIANTIMESTAMP_PRECISE'
オプションを使用して精度の高いタイムスタンプを取得できますが、パフォーマンスに影響が出る可能性があります。
ノート:
順序付け操作にこれらの値は使用しないでください。かわりに、値@COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO")*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))"
を使用します構文
@GETENV ('JULIANTIMESTAMP') @GETENV ('JULIANTIMESTAMP_PRECISE')
'RECSOUTPUT'
Extractに有効です。
@GETENV
のRECSOUTPUT
オプションでは、起動後にExtractがトレイル・ファイルに書き込んだレコード数の現在のカウントを取得します。返される値は、表またはトランザクションではなく、Extractセッション自体に固有の値です。Extractが停止して再起動されると、カウントは1にリセットされます。
構文
@GETENV ('RECSOUTPUT')
{'STATS'|'DELTASTATS'}, ['TABLE', '
table
'], '
statistic
'
ExtractおよびReplicatに有効です。
@GETENV
のSTATS
およびDELTASTATS
オプションでは、次のいずれかまたはすべてについて、表ごとに処理した操作数を返します。
-
INSERT
操作 -
UPDATE
操作 -
DELETE
操作 -
TRUNCATE
操作 -
合計DML操作
-
合計DDL操作
-
競合の検出および解決(CDR)機能を使用する場合、発生した競合の数。
-
成功したCDR解決の数
-
失敗したCDR解決の数
解決されていない表エントリや不適切な構文など、このファンクションの処理中にエラーが発生した場合、リクエストされた統計値にゼロ(0)を返します。
表の指定の繰返しが操作数に与える影響について
同じソース表を複数の出力トレイルに処理しているExtractは、@GETENV
にリンクした表が書き込まれるローカライズされた各出力トレイルに基づいて、統計を返します。たとえば、Extractが表ABC
への100件の挿入を取得し、表ABC
を3つのトレイルに書き込む場合、@GETENV
の結果は300になります。
EXTRACT ABC ... EXTTRAIL c:\ogg\dirdat\aa; TABLE TEST.ABC; EXTTRAIL c:\ogg\dirdat\bb; TABLE TEST.ABC; TABLE EMI, TOKENS (TOKEN-CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML')); EXTTRAIL c:\ogg\dirdat\cc; TABLE TEST.ABC;
ソース表を単一の出力トレイルに複数回書き込むExtractの場合、または同じTARGET
表に対して複数のMAP
文があるReplicatの場合、統計の結果は、一致するすべてのTARGET
エントリに基づいています。たとえば、Replicatが、REGION
'WEST
'の20行、REGION
'EAST
'の10行、REGION
'NORTH
'の5行、REGION
'SOUTH
'の2行のすべてを表ABC
に対してフィルタする場合、@GETENV
の結果は37になります。
REPLICAT ABC ... MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'WEST')); MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'EAST')); MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'NORTH')); MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'SOUTH')); MAP TEST.EMI, TARGET TEST.EMI, & COLMAP (CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
複数の統計の取得
@GETENV
の複数のインスタンスを実行して、異なる操作タイプの数を取得できます。
次の例では、INSERT
およびUPDATE
の操作のみの統計を返します。
REPLICAT TEST .. .. MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, IU = @COMPUTE (@GETENV & ('STATS', 'TABLE', 'ABC', 'DML') - (@GETENV ('STATS', 'TABLE', & 'ABC', 'DELETE'));
次の例では、DDLおよびTRUNCATE
の操作の統計を返します。
REPLICAT TEST2 .. .. MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, DDL = @COMPUTE & (@GETENV ('STATS', 'DDL') + (@GETENV ('STATS', 'TRUNCATE'));
ユースケースの例
次のユースケースでは、ソースからのすべてのDMLがターゲットに正常に適用された場合、SEND REPLICAT
をRESUME
にしてGGSCIから再開されるまで、EVENTACTIONS
をSUSPEND
にすることにより、Replicatは一時停止します。
Extractパラメータ・ファイルで使用されるGETENV
は次のとおりです。
TABLE HR1.HR*; TABLE HR1.STAT, TOKENS ('env_stats' = @GETENV ('STATS', 'TABLE', & 'HR1.HR*', 'DML'));
Replicatパラメータ・ファイルで使用されるGETENV
は次のとおりです。
MAP HR1.HR*, TARGET HR2.*; MAP HR1.STAT, TARGET HR2.STAT, filter ( @if ( @token ('stats') = @getenv ('STATS', 'TABLE', 'TSSCAT.TCUSTORD', 'DML'), 1, 0 ) ), eventactions (suspend);
FILTER句での統計の使用
STATS
およびDELTASTATS
によって返される統計は動的な値で、マッピングの実行後に増分されます。したがって、複数のMAP
文それぞれのFILTER
句でCDR統計を使用する際、MAP
文を統計値の降順で順序付けする必要があります。順序が正しくない場合、Oracle GoldenGateではエラーOGG-01921が返されます。この要件の詳細は、My Oracle Support (http://support.oracle.com
)のナレッジ・ベースでドキュメント1556241.1を参照してください。
例4-1 FILTER句の統計が含まれるMAP文
次の例では、CDR_CONFLICTS
統計のフィルタが含まれるMAP
文が、統計の降順(>3
、=3
、<3
の順番)で順序付けされます。
MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") > 3),EVENTACTIONS (LOG INFO);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") = 3),EVENTACTIONS (LOG WARNING);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") < 3),EVENTACTIONS (LOG WARNING);
構文
@GETENV ({'STATS' | 'DELTASTATS'}, ['TABLE', 'table'], 'statistic')
-
{'STATS' | 'DELTASTATS'}
-
STATS
はプロセス起動以降の数を返しますが、DELTASTATS
は最後のDELTASTATS
の実行以降の数を返します。実行ロジックは次のようになります。
-
Extractが
STATS
またはDELTASTATS
で@GETENV
を満たすトランザクション・レコードを処理すると、表名はTABLE
文内の解決されたソース表と照合されます。 -
Replicatが
STATS
またはDELTASTATS
で@GETENV
を満たすトレイル・レコードを処理すると、表名はMAP
文のTARGET
句内の解決されたターゲット表と照合されます。
-
-
'TABLE', '
table
'
-
指定した表に対してのみ
STATS
またはDELTASTATS
を実行します。このオプションを指定しないと、パラメータ・ファイルでTABLE
(Extract)またはMAP
(Replicat)パラメータに指定したすべての表に対する数が返されます。table_name
の有効な値は次のとおりです。-
'
schema.table
'は表を指定します。 -
'table'
はデフォルト・スキーマの表を指定します。 -
'
schema.*
'はスキーマのすべての表を指定します。 -
'
*
'はデフォルト・スキーマのすべての表を指定します。
たとえば、次の場合、
hr
スキーマの表のDML操作のみを数えます。MAP fin.*, TARGET fin.*; MAP hr.*, TARGET hr.*; MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.*', 'DML'));
同様に、次の場合は
hr
スキーマのemp
表のDML操作のみを数えます。MAP fin.*, TARGET fin.*; MAP hr.*, TARGET hr.*; MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.emp', 'DML'));
これに対して、次の例では、
STATS
に特定の表を指定していないため、MAP
文のTARGET
句内にあるすべてのスキーマのすべての表の、すべてのINSERT
、UPDATE
およびDELETE
操作を数えます。MAP fin.*, TARGET fin.*; MAP hr.*, TARGET hr.*; MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = & @GETENV ('STATS', 'DML'));
-
-
'statistic
' -
返される統計のタイプ。複数の
TABLE
文またはMAP
文のFILTER
句で統計を使用する際の重要な情報については、FILTER句での統計の使用を参照してください。-
'INSERT'
-
処理された
INSERT
操作の数を返します。 -
'UPDATE'
-
処理された
UPDATE
操作の数を返します。 -
'DELETE'
-
処理された
DELETE
操作の数を返します。 -
'DML'
-
処理された
INSERT、UPDATE
およびDELETE
操作の合計を返します。 -
'TRUNCATE'
-
処理された
TRUNCATE
操作の数を返します。この変数は、Oracle GoldenGateのDDLレプリケーションが使用されていない場合のみ、数を返します。DDLレプリケーションが使用されている場合、この変数はゼロを返します。 -
'DDL'
-
TRUNCATE
、および、すべての範囲(MAPPED
、UNMAPPED
、OTHER
)のDDL
パラメータのINCLUDE
句およびEXCLUDE
句で指定したDDLなど、処理されたDDL操作の数を返します。この変数は、Oracle GoldenGateのDDLレプリケーションが使用されている場合のみ、数を返します。この変数は、'DELTASTATS
'には無効です。 -
'CDR_CONFLICTS'
-
競合の検出および解決(CDR)機能の実行時にReplicatで検出された競合の数を返します。
特定の表に対する例:
@GETENV ('STATS','TABLE','HR.EMP','CDR_CONFLICTS')
Replicatで処理されるすべての表に対する例:
@GETENV ('STATS','CDR_CONFLICTS')
-
'CDR_RESOLUTIONS_SUCCEEDED'
-
競合の検出および解決(CDR)機能の実行時にReplicatで解決した競合の数を返します。
特定の表に対する例:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_SUCCEEDED')
Replicatで処理されるすべての表に対する例:
@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')
-
'CDR_RESOLUTIONS_FAILED'
-
競合の検出および解決(CDR)機能の実行時にReplicatで解決できなかった競合の数を返します。
特定の表に対する例:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_FAILED')
Replicatで処理されるすべての表に対する例:
@GETENV ('STATS','CDR_RESOLUTIONS_FAILED')
-
'GGENVIRONMENT' , '
environment_info
'
ExtractおよびReplicatに有効です。
@GETENV
のGGENVIRONMENT
オプションでは、Oracle GoldenGate環境に関する情報を返します。
構文
@GETENV ('GGENVIRONMENT', {'DOMAINNAME'|'GROUPDESCRIPTION'|'GROUPNAME'| 'GROUPTYPE'|'HOSTNAME'|'OSUSERNAME'|'PROCESSID')
-
'DOMAINNAME'
-
(Windowsのみ)プロセスを開始したユーザーに関連付けられているドメイン名を返します。
-
'GROUPDESCRIPTION'
-
チェックポイント・ファイルから取得したグループの説明を返します。グループがGGSCIの
ADD
コマンドで作成されている場合、説明はDESCRIPTION
パラメータで指定されている必要があります。 -
'GROUPNAME'
-
プロセス・グループ名を返します。
-
'GROUPTYPE'
-
プロセスのタイプ(
EXTRACT
またはREPLICAT
)を返します。 -
'HOSTNAME'
-
ExtractまたはReplicatプロセスが実行されているシステムの名前を返します。
-
'OSUSERNAME'
-
プロセスを起動したオペレーティング・システムのユーザー名を返します。
-
'PROCESSID'
-
オペレーティング・システムによってプロセスに割り当てられているプロセスIDを返します。
'GGHEADER' , '
header_info
'
ExtractおよびReplicatに有効です。
@GETENV
のGGHEADER
オプションでは、Oracle GoldenGateトレイル・レコードのヘッダー部分の情報を返します。ヘッダーには、レコードのトランザクション環境が記述されています。レコード・ヘッダーとレコード・タイプの詳細は、『Oracle GoldenGateの管理』を参照してください。
構文
@GETENV ('GGHEADER', {'BEFOREAFTERINDICATOR'|'COMMITTIMESTAMP'|'LOGPOSITION'| 'LOGRBA'|'OBJECTNAME'|'TABLENAME'|'OPTYPE'|'RECORDLENGTH'| 'TRANSACTIONINDICATOR'})
ノート:
順序付け操作にTIMESTAMP_PRECISE
を使用しないでください。かわりに、値@COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))
を使用します-
'BEFOREAFTERINDICATOR'
-
レコードがビフォア・イメージかアフター・イメージかを示すビフォアまたはアフター・インジケータを返します。次のような結果になります。
-
BEFORE
(ビフォア・イメージ) -
AFTER
(アフター・イメージ)
-
-
'COMMITTIMESTAMP'
-
次の例のように、
YYYY-MM-DD HH:MI:SS.FFFFFF
形式で表現されたトランザクション・タイムスタンプ(トランザクションがコミットされた時間)を返します。2011-01-24 17:08:59.000000
-
'LOGPOSITION'
-
データ・ソース内のExtractプロセスの位置を返します。(
LOGRBA
オプションを参照してください。) -
'LOGRBA'
-
LOGRBA
およびLOGPOSITION
は、データ・ソース内のレコードの詳細な位置を保持します。トランザクション・ログベースの製品では、LOGRBA
は順序番号、LOGPOSITION
は相対バイト・アドレスです。ただしこれらの値は、取得方法とデータベースのタイプによって異なります。 -
'OBJECTNAME' | 'TABLENAME'
-
表名または(表以外のオブジェクトの場合)オブジェクト名を返します。
-
'OPTYPE'
-
操作のタイプを返します。次のような結果になります。
INSERT
UPDATE
DELETE
SQL COMPUPDATE
PK UPDATE
TRUNCATE
操作が前述のいずれのタイプでもない場合、このファンクションは単語
TYPE
およびこのタイプに割り当てられている数字を返します。 -
'RECORDLENGTH'
-
レコード長(バイト)を返します。
-
'TRANSACTIONINDICATOR'
-
トランザクション・インジケータを返します。この値は、Logdumpユーティリティを使用して表示できる、レコード・ヘッダーの
TransInd
フィールドに相当します。次のような結果になります。
-
BEGIN
(TransInD
が0、トランザクションの最初のレコードを示します) -
MIDDLE
(TransInD
が1、トランザクションの中間のレコードを示します) -
END
(TransInD
が2、トランザクションの最後のレコードを示します) -
WHOLE
(TransInD
が3、トランザクションの唯一のレコードを示します)
-
'GGFILEHEADER' , '
header_info
'
Replicatにのみ有効です。
@GETENV
のGGFILEHEADER
オプションでは、Oracle GoldenGateの抽出ファイルまたはトレイル・ファイルの属性を返します。これらの属性は、ファイル・ヘッダーにトークンとして保持されます。
ノート:
データベース、オペレーティング・システム、またはOracle GoldenGateリリースがトークンに関する情報を提供しない場合は、NULL
値が返されます。
構文
@GETENV ('GGFILEHEADER', {'COMPATIBILITY'|'CHARSET'|'CREATETIMESTAMP'| 'FILENAME'|'FILETYPE'|'FILESEQNO'|'FILESIZE'|'FIRSTRECCSN'| 'LASTRECCSN'|'FIRSTRECIOTIME'|'LASTRECIOTIME'|'URI'|'URIHISTORY'| 'GROUPNAME'|'DATASOURCE'|'GGMAJORVERSION'|'GGMINORVERSION'| 'GGVERSIONSTRING'|'GGMAINTENANCELEVEL'|'GGBUGFIXLEVEL'|'GGBUILDNUMBER'| 'HOSTNAME'|'OSVERSION'|'OSRELEASE'|'OSTYPE'|'HARDWARETYPE'| 'DBNAME'|'DBINSTANCE'|'DBTYPE'|'DBCHARSET'|'DBMAJORVERSION'| 'DBMINORVERSION'|'DBVERSIONSTRING'|'DBCLIENTCHARSET'|'DBCLIENTVERSIONSTRING'| 'LASTCOMPLETECSN'|'LASTCOMPLETEXIDS'|'LASTCSN'|'LASTXID'| 'LASTCSNTS'|'RECOVERYMODE'})
-
'COMPATIBILITY'
-
トレイル・ファイルの互換性レベルを返します。トレイル・ファイルのデータ・レコードを読み取るためには、現在のOracle GoldenGateリリースの互換性レベルがトレイル・ファイルの互換性レベル以上である必要があります。現在有効な値は0または6です。
-
1は、トレイル・ファイルがOracle GoldenGateリリース10.0以上(ファイル・バージョニング情報を含むファイル・ヘッダーをサポート)であることを示します。
-
0は、トレイル・ファイルがOracle GoldenGateリリース10.0よりも古いことを示します。これらのリリースでは、ファイル・ヘッダーはサポートされていません。値0は、これらのOracle GoldenGateリリースとの下位互換性を維持するために使用されます。
-
5は、トレイル・ファイルがOracle GoldenGateバージョン12.2以上であることを意味します。
-
6は、トレイル・ファイルがOracle GoldenGateバージョン12.3.0.1であることを意味します。
この値はトレイル・ファイルのバージョンに応じて、Oracle GoldenGateのバージョンごとに増加し続けます。
-
-
'CHARSET'
-
トレイル・ファイルのグローバル文字セットを返します。次に例を示します。
WCP1252-1
-
'CREATETIMESTAMP'
-
トレイルが作成された時間をINT64のローカルGMTユリウス時間で返します。
-
'FILENAME'
-
トレイル・ファイル名を返します。ファイル・システムに応じて、フォワード・スラッシュまたはバックワード・スラッシュを使用した絶対パスまたは相対パスの場合があります。
-
'FILETYPE'
-
トレイル・ファイルが単一のファイル(バッチ実行で作成されたファイルなど)か、オンライン継続処理用トレイルの順序番号付けされたファイルかを示す数価を返します。有効な値は次のとおりです。
-
0 - EXTFILE
-
1 - EXTTRAIL
-
2 - UNIFIEDおよびEXTFILE
-
3 - UNIFIEDおよびEXTTRAIL
-
-
'FILESEQNO'
-
トレイル・ファイルの順序番号(先行ゼロを除く)を返します。たとえば、ファイルの順序番号が
aa000026
の場合、FILESEQNO
は26
を返します。 -
'FILESIZE'
-
トレイル・ファイルのサイズを返します。アクティブ・ファイルの場合は
NULL
を返し、ファイルが一杯になりトレイルがロール・オーバーされているときはサイズ値を返します。 -
'FIRSTRECCSN'
-
トレイル・ファイルの最初のレコードのコミット順序番号(CSN)を返します。トレイル・ファイルが完結するまで値は
NULL
です。CSNの詳細は、『Oracle GoldenGateの管理』を参照してください。 -
'LASTRECCSN'
-
トレイル・ファイルの最後のレコードのコミット順序番号(CSN)を返します。トレイル・ファイルが完結するまで値は
NULL
です。CSNの詳細は、『Oracle GoldenGateの管理』を参照してください。 -
'FIRSTRECIOTIME'
-
最初のレコードがトレイル・ファイルに書き込まれた時間を返します。証跡ファイルが完結するまで値は
NULL
です。 -
'LASTRECIOTIME'
-
最後のレコードがトレイル・ファイルに書き込まれた時間を返します。証跡ファイルが完結するまで値は
NULL
です。 -
'RECOVERYMODE'
-
内部でOracle GoldenGateに使用されるリカバリ情報を返します。通常、これは
APPENDMODE
に設定されます。 -
'URI'
-
トレイル・ファイルを作成したプロセスのユニバーサル・リソース識別子を次の形式で返します。
host_name:dir:[:dir][:dir_n]group_name
説明:
-
host_name
は、プロセスをホストするサーバー名です。 -
dir
は、Oracle GoldenGateインストール・パスのサブディレクトリです。 -
group_name
は、プロセスにリンクされているプロセス・グループ名です。
次の例は、トレイルがどこでどのプロセスに処理されたかを示します。以前の実行の履歴も含まれます。
sys1:home:oracle:v9.5:extora
-
-
'URIHISTORY'
-
現在のプロセス以前にトレイル・ファイルに書き込んだプロセスのURIのリストを返します。
-
プライマリExtractの場合、このフィールドは空です。
-
データ・ポンプの場合、このフィールドは、入力証跡ファイルの
URIHistory
+URI
です。
-
-
'GROUPNAME'
-
トレイルを作成したExtractグループに関連付けられているグループ名を返します。グループ名は、
ADD EXTRACT
コマンドの発行時に指定した名前です。 -
'DATASOURCE'
-
プロセスによって読み取られたデータ・ソースを数値として返します。戻り値は次のいずれかです。
-
DS_EXTRACT_TRAILS
: ソースは、変更データが移入されたOracle GoldenGate抽出ファイルです。戻り値は0
です。 -
DS_DATABASE:
ソースはSOURCEISTABLE
主導の初期ロードで使用され、直接選択されてトレイルに書き込まれたデータベース表です。戻り値は2
です。 -
DS_TRAN_LOGS
: ソースはデータベース・トランザクション・ログです。戻り値は3
です。 -
DS_INITIAL_DATA_LOAD
: ソースは初期ロードで直接選択されたデータベース表です。戻り値は4
です。 -
DS_VAM_EXTRACT:
ソースはVendor Access Module (VAM)です。戻り値は5
です。 -
DS_VAM_TWO_PHASE_COMMIT:
ソースはVAMトレイルです。戻り値は6
です。
-
-
'GGMAJORVERSION'
-
トレイルを作成したExtractプロセスのメジャー・バージョン(整数で表現)を返します。たとえば、バージョン1.2.3の場合は1を返します。
-
'GGMINORVERSION'
-
トレイルを作成したExtractプロセスのマイナー・バージョン(整数で表現)を返します。たとえば、バージョン1.2.3の場合は2を返します。
-
'GGVERSIONSTRING'
-
トレイルを作成したExtractプロセスのメンテナンス(またはパッチ)レベル(整数で表現)を返します。たとえば、バージョン1.2.3の場合は3を返します。
-
'GGMAINTENANCELEVEL'
-
プロセスのメンテナンス・バージョン(
xx.xx.xx
)を返します。 -
'GGBUGFIXLEVEL'
-
プロセスのパッチ・バージョン(
xx.xx.xx.xx
)を返します。 -
'GGBUILDNUMBER'
-
プロセスのビルド番号を返します。
-
'HOSTNAME'
-
トレイルに書き込んだExtractが実行されているマシンのDNS名を返します。次に例を示します。
-
sysa
-
sysb
-
paris
-
hq25
-
-
'OSVERSION'
-
トレイルに書き込んだExtractが実行されているマシンのオペレーティング・システムのメジャー・バージョンを返します。次に例を示します。
-
Version s10_69
-
#1 SMP Fri Feb 24 16:56:28 EST 2006
-
5.00.2195 Service Pack 4
-
-
'OSRELEASE'
-
トレイルに書き込んだExtractが実行されているマシンのオペレーティング・システムのリリース・バージョンを返します。たとえば、
OSVERSION
で示した例のリリース・バージョンは次のようになることがあります。-
5.10
-
2.6.9-34.ELsmp
-
-
'OSTYPE'
-
トレイルに書き込んだExtractが実行されているマシンのオペレーティング・システムのタイプを返します。次に例を示します。
-
SunOS
-
Linux
-
Microsoft Windows
-
-
'HARDWARETYPE'
-
トレイルに書き込んだExtractが実行されているマシンのハードウェアのタイプを返します。次に例を示します。
-
sun4u
-
x86_64
-
x86
-
-
'DBNAME'
-
データベース名(
findb
など)を返します。 -
'DBINSTANCE'
-
データベースのタイプに適切な場合、データベース・インスタンス名(
ORA1022A
など)を返します。 -
'DBTYPE'
-
トレイル・ファイルのデータを生成したデータベースのタイプを返します。次のいずれかになります。
DB2 UDB DB2 ZOS MSSQL MYSQL ORACLE TERADATA ODBC
-
'DBCHARSET'
-
トレイル・ファイルのデータを生成したデータベースで使用されている文字セットを返します。(一部のデータベースでは、これは空になります。)
-
'DBMAJORVERSION'
-
トレイル・ファイルのデータを生成したデータベースのメジャー・バージョンを返します。
-
'DBMINORVERSION'
-
トレイル・ファイルのデータを生成したデータベースのマイナー・バージョンを返します。
-
'DBVERSIONSTRING'
-
トレイル・ファイルのデータを生成したデータベースのメンテナンス(パッチ)・レベルを返します。
-
'DBCLIENTCHARSET'
-
データベース・クライアントに使用されている文字セットを返します。
-
'DBCLIENTVERSIONSTRING'
-
データベース・クライアントのメンテナンス(パッチ)・レベルを返します。(一部のデータベースでは、これは空になります。)
'RECORD' , '
location_info
'
データ・ポンプExtractまたはReplicatに有効です。
@GETENV
のRECORD
オプションでは、Oracle GoldenGateトレイル・ファイルのレコードの場所またはOracle ROWIDを返します。
構文
@GETENV ('RECORD', {'TIMESTAMP_PRECISE'|'FILESEQNO'|'FILERBA'|'ROWID'|'RSN'|'TIMESTAMP'})
-
'TIMESTAMP_PRECISE'
-
データ・ポンプ、ExtractまたはReplicatに有効です。
TIMESTAMP_PRECISE
オプションは、年からマイクロ秒のタイムスタンプを返します。ただし、データベースによっては、値がミリ秒(マイクロ秒が0)になることもあります。 -
'FILESEQNO'
-
トレイル・ファイルの順序番号(先行ゼロを除く)を返します。
-
'FILERBA'
-
FILESEQNO
ファイル内のレコードの相対バイト・アドレスを返します。 -
'ROWID'
-
(Oracleに有効)レコードの行IDを返します。
-
'RSN'
-
トランザクション内のレコード順序番号を返します。
-
'TIMESTAMP'
-
レコードのタイムスタンプを返します。
例:
REC-TIMESTAMP: 2017-10-31 06:21:07 REC-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.478064
'DBENVIRONMENT' , '
database_info
'
ExtractおよびReplicatに有効です。
@GETENV
のDBENVIRONMENT
オプションでは、データベースのグローバル環境情報を返します。
構文
@GETENV ('DBENVIRONMENT', {'DBNAME'|'DBVERSION'|'DBUSER'|'SERVERNAME'})
'TRANSACTION' , '
transaction_info
Extractに有効です。
@GETENV
のTRANSACTION
オプションでは、ソース・トランザクションに関する情報を返します。このオプションは、Extractプロセスに有効ですが、ポンプExtractとReplicatには有効ではありません。
構文
@GETENV ('TRANSACTION', {'TIMESTAMP_PRECISE'|'TRANSACTIONID'|'XID'|'CSN'|'TIMESTAMP'|'NAME'| 'USERID'|'USERNAME'|'PLANNAME' | 'LOGBSN' | 'REDOTHREAD' | 'PROGRAMNAME' | 'CLIENTIDENTIFIER' | 'MACHINENAME' | 'USERNAME')
ノート:
順序付け操作にTIMETSAMP_PRECISE
またはTIMESTAMP
を使用しないでください。かわりに、@COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))
を使用します-
'TIMESTAMP_PRECISE'
- このオプションはExtractに有効です。
TIMESTAMP_PRECISE
を使用すると、年からマイクロ秒のタイムスタンプが返されます。ただし、データベースによっては、値がミリ秒(マイクロ秒が0)になることもあります。 -
'TRANSACTIONID' | 'XID'
-
トランザクションID番号を返します。
TRANSACTIONID
またはXID
を使用できます。トランザクションIDおよびCSNは、各トランザクションの最初のレコードに関連付けられており、トレイル・レコードにトークンとして保持されています。各トランザクションIDには、CSNが関連付けられています。トランザクションIDトークンは、相対値として評価されることはないため、どのプラットフォームでもゼロは埋め込まれません。これらは、一致するかしないかのみの評価が行われます。トレイルでは、トランザクションIDトークンはTRANID
として表示されることに注意してください。 -
'CSN'
-
コミット順序番号(CSN)を返します。CSNは、Oracle、DB2 LUW、およびDB2 z/OSデータベースに対して返されるときは、ゼロが埋め込まれません。サポートされている他のすべてのデータベースの場合は、CSNにゼロが埋め込まれます。
トレイルでは、CSNトークンは
LOGCSN
として表示されることに注意してください。CSNトークンの補足情報は、TRANSACTIONID | XID
環境値を参照してください。CSNの詳細は、『Oracle GoldenGateの管理』を参照してください。
-
'TIMESTAMP'
-
トランザクションのコミット・タイムスタンプを返します。
-
'NAME'
-
使用可能な場合、トランザクション名を返します。
-
'USERID'
-
(Oracle)最後のトランザクションをコミットしたデータベース・ユーザーのOracleユーザーIDを返します。これはポンプExtractとReplicatには有効ではありません。
-
'USERNAME'
-
(Oracle)最後のトランザクションをコミットしたデータベース・ユーザーのOracleユーザー名を返します。これはポンプExtractとReplicatには有効ではありません。
-
'PLANNAME'
-
(DB2 z/OS)現在のトランザクションを最初に実行した計画名を返します。計画名は、リカバリ・ログ・レコードの開始ユニットに含まれています。
-
'LOGBSN'
-
トランザクション・ログの開始順序番号(BSN)を返します。BSNは、Extractメモリーに保持されている最も古い未コミット・トランザクションの開始点を識別するネイティブ順序番号です。たとえば、Oracleデータベースの場合、BSNはシステム変更番号(SCN)として表されます。BSNは、Extractの現在のI/Oチェックポイント値に対応します。この値は、
@GETENV ('TRANSACTION' , 'LOGBSN' )
の使用時にReplicatによってトレイルから取得されます。この値は、DETAIL
オプション付きでINFO REPLICAT
コマンドを使用しても取得できます。ReplicatからBSNを取得する目的は、システム障害またはファイル・システムの破損によってExtractチェックポイント・ファイルが使用できなくなった場合に、Extractのリカバリ・ポイントを取得することです。Extract位置をリカバリする方法の詳細は、『Oracle GoldenGateの管理』を参照してください。 -
'REDOTHREAD'
-
RACノードExtractのスレッド番号を返し、非RACノードExtractでは、値は常に1です。データ・ポンプおよびReplicatでは、RACノードのExtractキャプチャによって使用されるスレッドIDが返され、非RACでは、
@GETENV()
でエラーが返されます。Logdumpでは、トランザクションがRACノードのExtractによってキャプチャされる場合、トークンORATHREADID
がトークン・セクションに表示されます。 -
'PROGRAMNAME
' - トランザクションまたはセッションを開始したプログラムまたはアプリケーションの名前。
-
'CLIENTIDENTIFIER'
DBMS_SESSION_.set_identifier()
を使用して設定される値。-
'MACHINENAME'
- データベースが稼働しているホスト、マシンまたはサーバーの名前
-
'USERNAME'
- データベースのログイン・ユーザー名。
例:
DB2 zOS:
TRANS-TIMESTAMP: 2017-10-31 06:21:07
TRANS-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.485792
'OSVARIABLE' , '
variable
'
ExtractおよびReplicatに有効です。
@GETENV
のOSVARIABLE
オプションでは、指定されたオペレーティング・システム環境変数の文字列値を返します。
構文
@GETENV ('OSVARIABLE', 'variable')
'TLFKEY' , SYSKEY, '
unique_key
'
ExtractおよびReplicatに有効です。
@GETENV
のTLFKEY
オプションでは、一意キーとACIのBase24アプリケーションのTLF/PTLFレコードを関連付けます。64ビット・キーは、次のアイテムが連結されて構成されます。
-
2000年以降の秒数。
-
TLF/PTLFブロックのレコードのブロック数に10を掛けた値。
-
ユーザーによって指定されたノード(0から255である必要があります)。
親トピック: ユーザー・イグジット・ファンクション