経緯
環境:Oracle 11g
DDLに不備があり
DB構築の際に先頭がアンダースコアから始まるトリガーが作成されてしまい(コンパイルエラーになるオブジェクト)、参照しているテーブルにデータがインサートできない事象が発生。
テストの為に一時的に無効にしようとしたが
ALTER TRIGGER トリガー名 DISABLE
SQL解析の段階で先頭にアンダースコアが含まれる為にSQL実行エラーになる。
トリガーの削除も同様にダメだった。
DROP TRIGGER トリガー名
解決策
ダブルクォーテーション "
でトリガー名をかこってSQL実施
ALTER TRIGGER "トリガー名" DISABLE
TRIGGERだけでなくアンダースコアから始まる他のオブジェクトでも同じ。
解決してくれたオラクルマスター曰く、
「オブジェクト作成失敗時に _ + オブジェクト名
なオブジェクトが作成される場合がある」とかなんとか
忘れそうなのでメモ。