可以传递给SQL * Plus(从Linux C Shell)的命令行参数的最大长度?

我从Linux C Shell调用SQL * Plus:

sqlplus username/password @file.sql var1 var2 var3

如果我传递一个string作为var1 ,这个string可以多久?

是由操作系统pipe理? 在这种情况下:

Linux version 2.6.9-100.ELsmp (mockbuild@x86-010.build.bos.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Tue Feb 1 12:17:32 EST 2011

更新:经验testing产生以下结果:

  • 5200个字符的命令行参数给出错误“Word太长”。
  • 1300个字符,然后产生SQL * Plus错误,“string开始”(000796384 …“太长,最大大小为239个字符。
  • 一旦我得到239字,一切都很好。

我想我会用sqlldr来克服这个问题。

尝试使用: 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行)。

我遇到了“内核在命令行中发生扼杀之前能够列出多长时间的参数列表?”:

 getconf ARG_MAX 

这在我的系统上给出了以下内容:

 131072