
あるテーブルを再作成(Drop→Create)すると、
そのテーブルを参照しているビュー等をリコンパイルしないといけないですよね。
参照しているビューをあらかじめ分かっている場合はいいのですが、
分かっていない場合、オブジェクトブラウザの”状態”で、エラーがないか
確認しています。
質問は
PL*SQLで同じ事(エラーがあるか確認)をする事は可能でしょうか。
出来る場合、リコンパイルも行えるのでしょうか。
出来ない場合、他の方法で確認する事は出来ないでしょうか。
環境は
Oracle8i
Windows2000 です。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ユーザ自作のSQLで、INVALID状態のオブジェクトを調べることは可能です。
オブジェクトブラウザは、同じ事を陰で処理しているだけです。
リコンパイルも行えます。
"ビュー等"という事ですが、どのようなオブジェクトに対応すれば良いのか
判らないので、ビューについてだけ、リコンパイルするスクリプトを掲示します。
declare
cursor CUR1 is select * from all_objects where object_type='VIEW' and status<>'VALID';
begin
for cur_record in cur1 loop
execute immediate
'alter view '||cur_record.owner||'.'||cur_record.object_name||' compile';
end loop;
end;
こんな感じでビューのリコンパイルが自動化できるはずです。
回答ありがとうございます。
これで、作業が早く進みます。
object_typeを他のもの(例えばテーブルやパッケージ)にし、
動的SQLも同様にすれば、view以外でも使えますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
異なるスキーマからデータを抽...
-
特定のスキーマのテーブルを一...
-
datapumpの実行方法について
-
ストアドで別スキーマのテーブ...
-
viewのバックアップ
-
ストアドやviewなどのエクスポート
-
oracle 10g ユーザやスキーマご...
-
スキーマとインスタンスをサル...
-
異なるスキーマからビュー作成
-
SQLでスキーマ名(所有者名)の...
-
Oracleでの登録するユーザーと...
-
DBリンク経由の参照について
-
スキーマの削除、スキーマオブ...
-
oracleのimpdpでORA-39166
-
データベースリンクとシノニム...
-
EXPORT時にあるテーブルのみ範...
-
create tablespace 時の内容確認
-
Oracle10gで他のスキマーのテー...
-
select insert 句
-
データを削除しても表領域の使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
異なるスキーマからデータを抽...
-
datapumpの実行方法について
-
SQLでスキーマ名(所有者名)の...
-
viewのバックアップ
-
select insert 句
-
特定のスキーマのテーブルを一...
-
oracleのimpdpでORA-39166
-
Oracle10gで他のスキマーのテー...
-
シノニムってエイリアスのエイ...
-
SynonymとViewについて
-
ストアドやviewなどのエクスポート
-
DBリンク&シノニム経由インデ...
-
DBリンク経由の参照について
-
oracle 10g ユーザやスキーマご...
-
オブジェクトエラー
-
オラクル DBリンクについて
-
テーブルの再作成におけるリコ...
-
スキーマの削除、スキーマオブ...
-
ACCESS 不要なオブジェクトの削除
-
ORA-01861について
おすすめ情報