OracleでSQLのSELECTステートメントのWHERE句でINを指定する場合、引数の個数に限界があります。
Oracleでは、IN演算子の引数に1,000個を超える引数を指定した場合、エラーが発生します。
IN演算子の引数に副問い合わせを利用することで、このエラーを回避することができます。

以下、サンプル。
《環境》
テーブル : SampleTbl
項目   : (Key1, Key2, Data1, Data2)

《SQL》
SELECT * FROM SampleTbl
WHERE key1 in (1, 2, 3, ... , 999, 1000, 1001);

上記を実行すると、エラーが発生します。
では、副問合せを利用して実行してみましょう。
SELECT * FROM SampleTbl
WHERE key1 in (
SELECT key1 FROM SampleTbl
WHERE key1 <= 1001
);

こうすると、エラーは発生せずに正しくデータを取得することができます。
ほとんどの場合、引数を直接記述することはありませんが、プログラムで変数や配列等を利用して指定する場合の注意点として、引数の上限は覚えておいた方が良さそうです。

【補足事項】
・SQL Serverには、IN演算子の引数に限界値はなさそうです。
 (10,000個程度の引数を指定しても、エラーは発生しませんでした)
 ※BooksOnlineでも調べてみましたが、特に記載はありませんでした。