- PR -

stack depth limit exceeded Query について

1
投稿者投稿内容
にのみや
会議室デビュー日: 2007/11/29
投稿数: 15
投稿日時: 2007-12-27 19:35
お世話になります。

JAVAのアプリケーション内で、SQLを発行するプログラムで
以下のメッセージが表示され、困っています。
(DBはPostgresです。)

--
java.sql.SQLException: ERROR: stackdepth limit exceeded Query:
delete from テーブル名 where テーブル名主キー in ('001', '002', ・・・・'3000')
(IN演算子内は、3000件程度)
--

SQLのIN演算子内に設定する値の数が限界なのかと思って、
CSE(DBアクセスツール)でSQLのみを実行したところ、
正常に動作しました。

そのため、SQLが問題なのか?JAVAのプログラムが問題なのか?
わからずに困っております。

上記のようなエラーについてご存知の方はご教授願えないでしょうか?
地図
会議室デビュー日: 2007/12/26
投稿数: 12
投稿日時: 2007-12-27 19:50
構成パラメータmax_stack_depthを増やしてみては如何でしょうか?
にのみや
会議室デビュー日: 2007/11/29
投稿数: 15
投稿日時: 2007-12-27 21:11
ありがとうございます。
試してみます。
にのみや
会議室デビュー日: 2007/11/29
投稿数: 15
投稿日時: 2007-12-28 17:53
お世話になります。

再現性を確認したく、
ALTER DATABASE filesend set max_stack_depth = 100;
を実行し、

新しい接続したCSE(DBアクセスツール)で
show max_stack_depth;
より、max_stack_depthが値が変更されていることを確認のうえ、

delete from テーブル名 where テーブル名主キー in ('001', '002', ・・・・'3000')
(IN演算子内は、3000件程度)
を実行したところ、正常に動作してしまいました。

stack depth limit exceeded Query を
DBアクセスツールから起こす方法をご存知方、ご教授願えませんか?

ちなみにサーバ環境の
max_stack_depth
については現在確認中です。
1

スキルアップ/キャリアアップ(JOB@IT)