0

簡単な質問で申し訳ありませんが、私はPL/SQLの初心者です。

1つのファイルがあり、最初の行に匿名ブロックがあり、次の1つのプロシージャと、ファイルの最後に1つの関数があります。プロシージャは関数から呼び出され、関数は匿名ブロックから呼び出されます。最初にプロシージャと関数をコンパイルし、その後で匿名ブロックをコンパイルして実行するにはどうすればよいですか?

どうもありがとう

4

1 に答える 1

1

これらすべての匿名のブロック、プロシージャ、および関数を含む単一のSQLファイルが必要です。

最初に、PL / SQL匿名ブロックがコンパイルおよび保存されることはなく、コンパイルおよび実行されることを考慮する必要があります。これらのブロックにはオブジェクト名を指定しないため、匿名と呼ばれます。実行した匿名ブロックに関する参照をデータ定義スキーマビューに含めることはできません。、などuser_proceduresのデータ定義スキーマビューでも、ストアドプロシージャと関数の情報を取得できます。user_objects

考慮すべき2番目のことは、多数のプロシージャまたは関数に依存関係がある場合、最初に独立したプロシージャまたは関数をコンパイルする必要があるということです。

手順は次のとおりです。

  1. あなたの場合、独立したオブジェクトがあなたの手順のようです。最初にコンパイルします。
  2. これで、関数はプロシージャに依存する依存オブジェクトになります。したがって、プロシージャをコンパイルした後、関数をコンパイルします。
  3. これで、関数を参照する匿名ブロックを実行できます。

SQLファイル内のコードを、プロシージャが最初に、関数が次に、匿名ブロックが最後になるように配置する必要があります。次に、そのスクリプトを実行する必要があります。

于 2013-02-14T08:48:58.550 に答える