• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロシージャをコンパイルするとフリーズ)

プロシージャをコンパイルするとフリーズ

このQ&Aのポイント
  • プロシージャを.sqlファイルに記述し、sql*plusより.sqlファイルを実行すると途中で反応がなくなります。
  • CreateTableでも同じことが起きてますが、こちらは一定の長さまでのCreate文は受理し、途中で止まってしまいます。
  • どうもスクリプトが長いと途中で止まっているみたいなのですが、なんで止まるのかがわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • nomanoma
  • ベストアンサー率60% (3/5)
回答No.1

スクリプトを見ていないので 詳しいことは分かりませんが、スクリプトの最後に"/"をつけていますか? これが実行の合図です。これがないと、スクリプトの内容を読み込ませただけで、実行はされません。 また、immediateを使用した場合は、その時点でアクティブセッションが存在していると、それが終了するまで待機します。そのため、待機状態になり、レスポンスが帰ってこないように見えるわけです。 systemユーザで select program,status from v$session; を実行するとアクティブなものがあるか分かります。 とすると、上記のスクリプトは アクティブになっている可能性が高いですね。スクリプトは正しいのでしょうか?無限ループのチェックなどをきちんとすることをおすすめします。 扱うレコード数がかなり多い場合は、それなりに時間がかかることもあると思います。その際は、スクリプト内SQLのチューニングが必要です。

関連するQ&A