OracleビューのエラーORA-04063およびORA-04063


一、エラーORA-01731:circular view definition encountered
このエラーが発生した場合、私は毎回同じviewを持ってleft joinの一連のviewに行きたいと思っています.joinが終わった後、このviewをjoinに更新した結果、シーケンスと同じようにnum=num+1、私も書きました.
select a.*,b.* from viewA a left join viewB b on a.id=b.bid

このようにOracleに書くことは許されません.一つ一つ合併したい場合は、おとなしく新しいviewやテーブルを作成しましょう.テーブルを削除せずにSQLのテーブル全体を更新できる状況は見たことがありません.
二、エラーORA-04063:view view_test has errors
このエラーの原因は2つあります.
1、1つは作成したビュー自体に誤りがあるが、forceなどのコマンドで強制的に作成に成功した.例えば、ビュー自体にベーステーブルに存在しないカラム(または存在しないカラムに基づいて分析関数を使用して作成したカラム)が含まれている.
ソリューション:ビューを強制的に作成しないで、使用するカラムが実際に存在することを保証したほうがいいです.
2、ビューのベーステーブル、またはビューが作成したビューに基づいて削除されます.Oracleのビューが先に作成され、ベース・テーブルまたはビューが削除されると、現在のビューにエラーが発生する可能性があります.たとえば、スペースの多いテンポラリ・テーブルを使用しないように、多くのビューを使用し、ビューを使用して複雑な取数を実現しましたが、ビューを削除する過程で、ビューを作成する順序で行き先から削除しました.先に削除した最後のビュー生成時に使用したビューは、最後に生成されたビューが存在しないビューに基づいて生成され、エラービューであり、クエリーできません.
ソリューション:ビューを削除するときは、削除の順序に注意し、最後に使用するデータは、ビューから物理的な記憶領域のあるテーブルにコピーし、すべての一時的なビューを逆順序で削除することが望ましい.