« DBMS_COMPARISONパッケージ で表データの比較 #5 | トップページ | Oracle de XMLDB #1 »

2007年10月13日 (土) / Author : Hiroshi Sekiguchi.

DBMS_COMPARISONパッケージ で表データの比較 #6

「DBMS_COMPARISONパッケージで表データの比較」のつづき。

マニュアルは、DBMS_COMPARISONを利用するための前提が記載されているいるので、前提を満たしていないとどんなエラーになるか試してみた。

バックナンバー:
DBMS_COMPARISONパッケージ で表データの比較 #1
DBMS_COMPARISONパッケージ で表データの比較 #2
DBMS_COMPARISONパッケージ で表データの比較 #3
DBMS_COMPARISONパッケージ で表データの比較 #4
DBMS_COMPARISONパッケージ で表データの比較 #5



● もしも、2つの表に前提を満たす主キー制約が無かったら。。。。。

SCOTT> alter table emp2 drop constraint emp2_pk;

表が変更されました。

SCOTT> create table emp3 as select * from emp2;

表が作成されました。

SCOTT> begin
2 dbms_comparison.create_comparison(
3 comparison_name => '索引の無い表の比較',
4 schema_name => 'SCOTT',
5 object_name => 'EMP2',
6 dblink_name => null,
7 remote_schema_name => 'SCOTT',
8 remote_object_name => 'EMP3'
9 );
10 end;
11 /
begin
*
行1でエラーが発生しました。:
ORA-23626: 適格な索引が表SCOTT.EMP2にありません
ORA-06512: "SYS.DBMS_COMPARISON", 行4197
ORA-06512: "SYS.DBMS_COMPARISON", 行420
ORA-06512: 行2

ちなみに、ローカル表には主キー制約があり、リモート表(実際にリモートデータベーベースにある表、マテリアライズドビューである必要はない)に主キー制約が存在しない場合は、DBMS_COMPARISONパッケージは可能だった。
ただしその場合、データを比較する際リモート表が全表走査されることになるだろう(実際にトレース取ったわけではないが・・)から、主キー制約、または一意制約はあったほうがよいだろう。(この点には注意が必要だが、主キーベースのレプリケーション環境では影響はないかと。。)



そういえば、XML Master Professional Databaseが今年の12月から開始予定とのことなので、そろそろ、XML絡みのネタを増やしていこうか・・・、Oracle9i/10g さらに11gとXML DBとしての機能も強化してきたOracleなのでOracleを使ってXML Master Professional Databaseの受験対策環境作っておくのもいいなぁ・・・準備しておくか・・・

| |

トラックバック


この記事へのトラックバック一覧です: DBMS_COMPARISONパッケージ で表データの比較 #6:

コメント

コメントを書く