Linux上で、UDF、UDM、または外部ストアド プロシージャ(まとめて外部ルーチンと呼ぶ)の作成、置換、変更を行なうと、「Argument list too long」エラーが発生することがあります。
このエラーが発生した場合は、外部ルーチンの作成、置換、変更を行なうデータベースにすでに他の外部ルーチンが多数存在しているか、名前が非常に長い外部ルーチンが含まれている可能性があります。
新しい外部ルーチンのコンパイル(または再コンパイル)は正常に実行されますが、結果として作成されるオブジェクト ファイルの名前がデータベース内にすでに存在するすべての外部ルーチンのオブジェクト ファイルのリストに追加されると、結果として作成されるリストがコマンド ライン引数の最大サイズを超えてしまうため、コンパイラは新しいダイナミック リンク ライブラリ(.soファイル)を作成できません。
Linuxのこの制約を回避するには、次のいずれかを実行します。
- 不要なUDTと外部ルーチンをデータベースから削除する。
- それぞれの外部ルーチンを個別にインストールする代わりに、外部ルーチンのパッケージまたはライブラリを作成して、まとめてインストールします。
これは、すべてのケースで有効ではないことがあります。例えば、システムで許可されるUDTの最大数に到達している場合などです。