他のプロシージャをほとんど呼び出さない Oracle プロシージャがあります。
手順
1 手順2
手順3
..
ここで、後続の手順 3 以降で使用されるいくつかの従属テーブルに対してPROCEDURE2
DDL ( ) を実行しています。EXECUTE IMMEDIATE 'DDL PROCESS'
これはPROCEDURE3
、投げたところに当たるまで問題なく動作しORA-06508 - Program / Unit being called not found
ます。
DDL を使用しないように変更することはできません。使用する必要があります。DDL ステートメントの後で再コンパイルを試みましたが、動作しません ( ALTER PROCEDURE PROCEDURE3 RECOMPILE
) どちらPROCEDURE1
でもPROCEDURE2
.
PROCEDURE1
それ自体が無効になり、実行時にコンパイルすると無限ループが発生するのではないかと思います。私は試しましたが、動作しません。
したがって、依存オブジェクトに対して DDL が実行された後、実行時にこれらのプロシージャを再度有効にするためのトリックを使用する必要があります。
参加してくださった方、回答ありがとうございます。