La longitud máxima del argumento de línea de comando que se puede pasar a SQL * Plus?

Estoy llamando a SQL * Plus desde Linux C Shell:

sqlplus username/password @file.sql var1 var2 var3

Si paso una cadena como var1 , ¿cuánto tiempo puede durar esta cadena?

¿Se rige por el sistema operativo? En este caso:

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

Actualización: las pruebas empíricas arrojaron los siguientes resultados:

  • Un argumento de línea de comando de 5200 caracteres dio el error “Palabra demasiado larga”.
  • 1300 caracteres produjeron el error SQL * Plus, “comienzo de cadena” (000796384 … “es demasiado largo. El tamaño máximo es 239 caracteres”.
  • Tan pronto como obtuve menos de 239 caracteres todo estaba bien.

Creo que sqlldr para superar esto.

Pruebe con: 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 

No hay límite por argumento, sino un total para toda la longitud de la línea de comando. En mi sistema (Fedora 15 / zsh) está más cerca de 2Mb. (línea 4).

Me encontré con “¿Cuánto tiempo una lista de argumentos puede tomar su núcleo en la línea de comandos antes de que se bloquee?”:

 getconf ARG_MAX 

que da lo siguiente en mi sistema:

 131072