2つのグローバルの内容を比較する方法
これは InterSystems FAQ サイトの記事です。
^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。
例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。
※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。
USER>kill^test// USERネームスペースに、比較元のグローバル作成(削除したあとに作成)
USER>for i=1:1:100 { forj=1:1:7 { set^test(i,j)="テスト"_i } }
USER>zn"samples"// SAMPLESネームスペースに、比較先のグローバル作成(削除したあとに作成)
SAMPLES>kill^test
SAMPLES>for i=1:1:100 { forj=1:1:7 { set^test(i,j)="テスト"_i } }
SAMPLES>set^test(50,5,1)=1// SAMPLESネームスペースに作成したグローバルの一つを変更
SAMPLES>do^%GCMP
Compare global ^test// 比較したいグローバル
on directory set: (this system) // Enter
in namespace: SAMPLES => // Enter(このネームスペースで良ければ)
with global ^test=> // 比較相手のグローバル
on directory set: (this system) // Enter
in namespace: SAMPLES => USER // 比較相手のネームスペース
Output differences on
Device: // 結果出力先、ターミナルで見る場合は <Enter> 押下// ※ログファイル名をフルパスで書けば、そちらに出力される
Right margin: 80 =>
Compare global ^test in SAMPLES
with global ^test in USER
^test(50,5,1) exists in ^|"SAMPLES"|test but not in ^|"USER"|test // 相違のあるグローバルを検出
Time=.001822
SAMPLES>
同一インスタンス内ではなく、異なるサーバのインスタンス間での比較を行いたい場合は、^DATACHECKユーティリティを使用します。
^DATACHECKユーティリティの使用方法については、以下の関連記事をご覧ください。
ディスカッション (0)0
【関連】