スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【エラー】トリガーやシノニムのインポート時にエラー

自分がこのエラーを見た状況
Oracleバージョン:8.1.7.0.0
OS:Windows2000Server

症状:
>IMP XXX/YYY@ZZZ FILE=oraora.dmp FROMUSER=ORE TOSER=OMAE
としてインポートした際、シノニムが正しく作成されなかったり、トリガーインポート時にコンパイルエラーが発生する。

原因:
オブジェクトのインポート時にスキーマの移動は出来ても、オブジェクト内のスキーマ名までは変更されないのが原因です。
シノニム・トリガーに限らずオブジェクト全てで起こりうるそうです。

対応:
シノニム・トリガーとも頑張って作り直してください(ぉ

一応、シノニムに関しては誤ったシノニムの削除と再作成を行うスクリプトを発行するSELECT文置いときます。

SPOOL C:\DROP_CREATE_SYNONYM.sql
SELECT
 'DROP SYNONYM '||SYNONYM_NAME||';'
 FROM USER_SYNONYMS
;
SELECT
 'CREATE SYNONYM '||SYNONYM_NAME||' FOR OMAE.'||TABLE_NAME||';'
 FROM USER_SYNONYMS
;
SPOOL OFF


トリガーに関しては、本体がLONG型の為SELECT文での出力が出来ません。
パッケージを用いた方法もあるようですが、自分はトリガー名と本体部を別々にファイルに書き出して、必死こいてコンパイル出来る形に整形してました。

※本体部を全行表示する為に!
 LONG型はデフォルトだと20文字(だったかな?)分しか出力されません。
 そこで、
 SET LINESIZE 10000
 SET LONG 20000
 をSPOOLの前に実行しました。
 
 但し、これだと改行コードが入ってしまう場合があるので、整形が大変でした。
 SET LONGCHUNKSIZE 1000
 とかもやると大丈夫なようです。検証してないけど^^;
 
 トリガー関係では、もっと楽なやり方が有りそうなので、要研究ですね。
スポンサーサイト

Comment

 
管理人にのみ表示する
 

Track Back

TB URL

HOME

プロフィール

ラキア

  • Author:ラキア
  • ビリヤードB級、JPA SL5
    ホームは新宿BAGUSと荻窪サンビリ

    プレイ :McDarmott+OBPro+
    ブレイク:Adam+OBSBS+
    ジャンプ:TENGU

最近の記事

カテゴリー

月別アーカイブ

最近のコメント

最近のトラックバック

ブログ内検索

RSSフィード

リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。