Максимальная длина аргумента командной строки, который может быть передан 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