特定の表に関連するすべてのコード、Oracleデータベースからのトリガーを見つけるにはどうすればよいですか。

oracle10g

Solarisパッケージをインストールするために、特定のテーブルに関連するすべてのコードとトリガーをデータベースから削除する必要があるという問題があります。 長く複雑な話ですが、私はきれいな状態から始める必要があります。

私はすべての既存のテーブル/同義語を削除することに成功しましたが、関連しているsqlplusからコード/トリガーを見つける方法は?

残念ながら、データベースを削除して再作成することは不可能です。

  3  0


ベストアンサー

まあ、それはすべてのテーブル名が私のモジュール名DAPを前に付けられていることがわかります。

そのため、sqlplusを使ってすべてのテーブル名とパブリックシノニムを見つけるには、次のように入力します。

all_tablesからtable_nameを選択します。table_nameは 'DAP%'のようにします。 all_synonymsからsynonym_nameを選択します。table_nameは 'DAP%'のようにします。

トリガーとシーケンスのリストを取得する

all_triggersからtrigger_nameを選択します。table_nameは 'DAP%'のようにします。 sequence__nameが 'DAP%'のようなall_sequencesからsequence_nameを選択します。

すべての制約のリストを取得する

all_constraintsからtable_name、constraint_nameを選択します。table_nameは 'DAP%'のようになります。

DAP関連のコードを入手するには

名前が 'DAP%'のようなdba_sourceからテキストを選択します。

すべてを落とすスクリプトを書くことができます。

8


システムテーブルALL_TRIGGERSを照会してトリガを見つけることができるはずです。 table_name列があります。 あなたはたぶん、異なるシステムテーブルを持つ他の関連オブジェクトを見つけることができるでしょう(私はOracleと混乱して以来しばらく経ちました)。

2


タイトルとURLをコピーしました