我从 Linux C Shell 调用 SQL*Plus:
sqlplus username/password @file.sql var1 var2 var3
如果我将字符串传递为var1
,这个字符串可以有多长?
它受操作系统控制吗?在这种情况下:
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
Update:实证测试得出以下结果:
- 5200 个字符的命令行参数给出错误“单词太长”。
- 1300 个字符然后产生 SQL*Plus 错误,“字符串开头“(000796384...”太长。最大大小为 239 个字符。”
- 当我的字符数低于 239 时,一切都很好。
我想我会用sqlldr
来克服这个问题。
尝试使用:xargs --show-limits </dev/null
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 行)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)