DB Tips

[ORACLE]ORA-01000とは? 対処法について

[ORACLE]ORA-01000とは? 対処法について

ORA-01000とは? 対処法
時々見かける事があるこのエラー。

「ORA-01000 最大オープン・カーソル数を超えました。」

リリース後のアプリやサイトなんかで見かけるとドキッとするやつ。
エラーの原因はメッセージの通りでカーソルの上限をオーバーしてしまい、処理が出来ずエラーとなっています。

カーソル上限の設定は簡単に確認できるので一応確認してみてください。
デフォルト値は50だそうです。(公式リファレンスより)

show parameters open_cursors;

ただまあ、これを用意に変更しようとする考えはやめた方が良いです。
だいたいの場合は既に構築済みのDBで運用中だと思うので、影響が大きいと思われます。
あくまで最後の手段として、ですね。
まずはエラーが発生した箇所を見直し、
ロジックに問題が無いかを点検していきます。
例えば、未解放のリソースがないかなど。
カーソルの閉じ忘れがある場合はちゃんと閉じておく。

処理が分割出来そうな所はセッションを分けて接続するようにするなど、プログラム面での改修をまずは考えて対処していく方がまわりへの影響が少なくて済みます。