Максимальная длина аргумента командной строки, который может быть передан SQL * Plus?
Я вызываю SQL * Plus из Linux C Shell:
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
обновление: эмпирическое тестирование дало следующие результаты:
- аргумент командной строки 5200 символов, дал ошибку, "слово слишком длинное."
- 1300 символов тогда произведена ошибка SQL * Plus, " начало строки "(000796384..."слишком долго. максимальный размер-239 символов."
- как только я попал под 239 символов все было хорошо.
Я думаю, что буду использовать sqlldr
чтобы преодолеть это.
2 ответов
попробовать с: 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