significa - La longitud máxima del argumento de línea de comando que se puede pasar a SQL*Plus(desde Linux C Shell)?
que significa en linux (2)
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
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 ([email protected]) (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).