答えは、PL/SQLは動的ポリモーフィズムをサポートしていないということです。
のため、静的ポリモーフィズムのみをサポートします。すべてのPL/SQLは、ツリー構造の中間言語であるAdaの「DIANA」->記述的中間属性表記を生成します。 DIANAは、コンパイラによって内部的に使用されます。
コンパイル時に、PL / SQLソースコードがシステムコードに変換され、対応するDIANAが生成されます。ここで、コンパイル時に存在しないcreate tableステートメントのようなDDLステートメントがあった場合、プログラムの実行後に作成されると考えてください。 PL /SQLエンジンはどのようにDIANAを生成しますか????
DIANAは、PL / SQLで重要な役割を果たし、サブプログラムをチェック/検証します。これが必要なのは、サブプログラムがテーブル、ビュー、シノニム、またはその他のストアドプロシージャなどのデータベースオブジェクトを使用できることがわかっているためです。次回プログラムを実行するときに、オブジェクトが変更/削除/削除された可能性があります。例:誰かがテーブルを削除した可能性があり、ストアドプロシージャまたは関数のsingnatureが変更された可能性があります。
そのため、一般的にPL / SQLはデータベース構造内のデータを操作するために使用されますが、それらの構造を操作するためには使用されません。
ただし、動的SQLおよびDBMS_SQLパッケージを使用して操作する方法はありますが、これらの方法論も慎重に使用する必要があります。たとえば、テーブルを作成する場合は、最初に、このテーブルがすでに存在するかどうか、またはデータディクショナリビューを使用していないかどうかを確認する必要があります。