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を参照してください。
例8-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' -
操作のタイプを返します。次のような結果になります。
INSERTUPDATEDELETESQL COMPUPDATEPK UPDATETRUNCATE操作が前述のいずれのタイプでもない場合、このファンクションは単語
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である必要があります)。
親トピック: 列変換ファンクション