「Arg list too long」および「Argument list too long」エラーのトラブルシューティング - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

Linux上で、UDF、UDM、または外部ストアド プロシージャ(まとめて外部ルーチンと呼ぶ)の作成、置換、変更を行なうと、「Argument list too long」エラーが発生することがあります。

このエラーが発生した場合は、外部ルーチンの作成、置換、変更を行なうデータベースにすでに他の外部ルーチンが多数存在しているか、名前が非常に長い外部ルーチンが含まれている可能性があります。

新しい外部ルーチンのコンパイル(または再コンパイル)は正常に実行されますが、結果として作成されるオブジェクト ファイルの名前がデータベース内にすでに存在するすべての外部ルーチンのオブジェクト ファイルのリストに追加されると、結果として作成されるリストがコマンド ライン引数の最大サイズを超えてしまうため、コンパイラは新しいダイナミック リンク ライブラリ(.soファイル)を作成できません。

Linuxのこの制約を回避するには、次のいずれかを実行します。

  • 不要なUDTと外部ルーチンをデータベースから削除する。
  • それぞれの外部ルーチンを個別にインストールする代わりに、外部ルーチンのパッケージまたはライブラリを作成して、まとめてインストールします。
これは、すべてのケースで有効ではないことがあります。例えば、システムで許可されるUDTの最大数に到達している場合などです。