- - PR -
Oracleでオープンカーソル数を超えたというエラー
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-07-25 19:12
PreparedStatementを再利用して、INSERT文を9000回ほど実行したら、オープンカーソル数を超えたというエラーが出てしまいました。
9000回というのは多すぎたのでしょうか。 | ||||
|
投稿日時: 2004-07-25 22:15
Oracleの設定ファイルを編集してOPEN_CURSORSパラメータの値を
増やすと良いようです(要:再起動)。 あとは適度な分量に分割してcommitするとか…でしょうか。 | ||||
|
投稿日時: 2004-07-26 13:19
vincentさん、有難うございました。
OPEN_CURSORSパラメータの値を増やすとエラーが解消しました。 | ||||
|
投稿日時: 2004-07-28 08:27
これって、「解消」にしていいんですか?先送りしただけのように思いますけど。データ数がn倍に増えたら、また出てきたりしますよ。 PreparedStatementということは、単にSQL*PLUSでINSERT文を発行しているのではなく、何らかのプログラミング言語、またはPL/SQLを利用しているわけですよね?その辺の情報がないのですが、カーソルを開いたまま、閉じていないのが原因ではないですか? | ||||
|
投稿日時: 2004-07-28 13:28
JDBCのプログラムの中でStatementオブジェクトをループの中で呼び出していました。Jittaさんのご指摘の通りでした。
これから、ミスに気をつけようと思います。 どうも有難うございました。 | ||||
|
投稿日時: 2004-07-29 08:17
PreparedStatementを使っていると書いておられたので
当然のようにインスタンスを再利用していると考えてしまいました。 そこらへんをもうちょっと考えるべきでした。 勉強になりました>Jittaさん | ||||
1
