Подтвердить что ты не робот

Максимальная длина аргумента командной строки, которая может быть передана SQL * Plus (из командной строки Linux C)?

Я вызываю SQL * Plus из оболочки Linux C:

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

Обновление: Эмпирическое тестирование дало следующие результаты:

  • Аргумент командной строки из 5200 символов дал ошибку "Слово слишком долго".
  • 1300 символов затем произвели ошибку SQL * Plus, "начало строки" (000796384... "слишком длинное, максимальный размер - 239 символов."
  • Как только я получил 239 символов, все было хорошо.

Думаю, я воспользуюсь sqlldr, чтобы преодолеть это.

4b9b3361

Ответ 1

Попробуйте: 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) она ближе к 2 Мб. (строка 4).

Ответ 2

Я наткнулся на "Как долго аргумент перечислит ваше ядро, которое может взять командную строку, прежде чем оно захлопнется?":

getconf ARG_MAX

который дает в моей системе следующее:

131072