我从Linux C Shell调用SQL * Plus:
sqlplus username/password @file.sql var1 var2 var3
如果我将字符串作为var1
传递,该字符串可以使用多长时间?
它是由操作系统管理的吗?在这种情况下:
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
更新:经验测试产生了以下结果:
我想我会用sqlldr
来克服这个问题。
答案 0 :(得分:83)
尝试使用: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行)。
答案 1 :(得分:55)
我遇到“你的内核在命令行阻塞之前可以使用多长时间的参数列表?”:
getconf ARG_MAX
在我的系统中给出以下内容:
131072