"IN"節の式の最大数に問題があります。基本的に私はもともと..regexp_substr文字列長さ
WHERE X IN (1, 2, 3...1001);
しかし、これはIN節に1000個の式しかないので、エラーが発生しました。だから私はそれをテーブルに交換することに決めました。私はそれを分割して一時テーブルに挿入するために使用できる式のCSV値(たとえば「1,2,3 ...」など)を渡しています。
しかし、この変更により、新しい問題が発生しました。regexp_substr関数は、渡すことができる文字列の長さの制限として機能します(512バイトと思われます)。ここで私はこれをやっている方法のためのいくつかのサンプルコードは、私は、円形の穴に正方形のペグを粉砕しようとしている可能性がありますように私は感じて...
SELECT * FROM dual
WHERE X IN (SELECT regexp_substr('1, 2,..., 1001', '[^,]+', 1, level)
FROM dual
CONNECT BY regexp_substr('1, 2,..., 1001', '[^,]+', 1, level) IS NOT NULL)
です。この長すぎる文字列を扱うより良い方法はありますか? JavaScriptを使用して文字列をより管理しやすい部分に分割し、一度に1つずつ渡すことを検討しています。