web-dev-qa-db-ja.com

SQL * Plusに渡すことができるコマンドライン引数の最大長は?

Linux CシェルからSQL * Plusを呼び出しています。

_sqlplus username/password @file.sql var1 var2 var3_

_var1_として文字列を渡す場合、この文字列はどれくらいの長さですか?

OSによって管理されていますか?この場合:

Linux version 2.6.9-100.ELsmp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Tue Feb 1 12:17:32 EST 2011

更新:実証試験により、次の結果が得られました。

  • 5200文字のコマンドライン引数では、「Word too long」というエラーが発生しました。
  • その後、1300文字でSQL * Plusエラー、「文字列の先頭」(000796384 ...)が長すぎます。最大サイズは239文字です。
  • 239文字以下になったらすぐにすべてが順調になりました。

これを克服するためにsqlldrを使用すると思います。

50
Umber Ferrule

試してください:xargs --show-limits

Your environment variables take up 2446 bytes
POSIX upper limit on argument length (this system): 2092658
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2090212
Size of command buffer we are actually using: 131072

引数ごとに制限はありませんが、コマンドライン全体の長さの合計です。私のシステム(Fedora 15/zsh)では2Mbに近い。 (4行目)。

83

「あなたのカーネルがコマンドラインでチョークする前にどのくらいの引数リストをとることができるのか?」

getconf ARG_MAX

私のシステムでは次のようになります:

131072
55
Umber Ferrule