Introducción y Sinopsis
La utilidad isql permite interactuar directamente con SAP Sybase ASE mediante comandos SQL.
Es una herramienta potente que puede usarse interactivamente o mediante scripts automatizados.
Sinopsis de invocación:
isql [-e] [-F] [-p] [-n] [-v] [-X] [-Y]
[-a display_charset] [-c cmdend] [-E editor]
[-h headers] [-H hostname] [-i inputfile]
[-I interfaces_file] [-J client_charset]
[-l login_timeout] [-m errorlevel] [-o outputfile]
[-P password] [-s colseparator] [-S server]
[-t timeout] [-U username] [-w columnwidth]
[-y sybase_directory] [-z language] [-A size]
Operaciones Críticas en Sesión
Dentro de la terminal de isql, existen comandos reservados que no son SQL pero controlan el
entorno:
| Comando | Acción |
|---|---|
| go [n] | Termina y envía el buffer al servidor. Si se añade un número n, ejecuta la instrucción n veces. |
| reset | Limpia el buffer de consulta actual (descartando cambios). |
| vi (o editor) | Abre el editor definido en la variable de entorno EDITOR para editar el buffer
actual. |
| !! comando | Ejecuta un comando del sistema operativo (shell escape). |
| :r archivo | Lee el contenido de un archivo externo y lo vuelca en el buffer actual. |
| quit / exit | Finaliza la sesión de isql. |
Listado Exhaustivo de Opciones (Flags)
Conectividad
- -U: Nombre de usuario (Sensible a mayúsculas).
- -P: Contraseña. Si es NULL, dejar
-Psolo al final. - -S: Nombre del servidor (busca en el archivo interfaces).
- -l: Tiempo máximo de espera para el login.
- -X: Encriptación de contraseña en el lado cliente (más seguro).
Entrada / Salida
- -i: Archivo de entrada con scripts SQL.
- -o: Archivo de salida para volcar resultados.
- -e: Echo (repite los comandos de entrada en la salida).
- -n: Elimina la numeración de líneas y el prompt (>) de la salida.
- -w: Ajuste de ancho de línea (default 80).
Opciones Avanzadas
- -A size: Ajusta el tamaño de paquete de red (múltiplo de 512). Vital para exportaciones masivas.
- -p: Imprime estadísticas de rendimiento (tiempos de reloj por transacción).
- -c cmdend: Cambia el terminador por defecto (
go) por otro símbolo (ej:-c.). - -J charset: Especifica el character set del cliente para conversiones automáticas.
- -m level: Customiza la visualización de errores según su severidad.
Configuración del Entorno mediante "set"
Estas opciones se activan dentro de la sesión SQL para modificar el comportamiento del motor:
| Opción set | Efecto |
|---|---|
| nocount | Desactiva el mensaje de "(n rows affected)". |
| statistics io / time | Muestra estadísticas detalladas de carga de CPU y lecturas de disco. |
| showplan | Genera la descripción del plan de ejecución (Query Optimizer). |
| parseonly | Solo valida la sintaxis sin ejecutar la consulta. |
| textsize | Controla el número de bytes retornados para columnas de tipo TEXT o IMAGE. |
Ejemplos de Uso Avanzado
1. Edición Interactiva
1> select * from authors 2> where city = "Oakland" 3> vi -- Se abre el editor, corriges el SQL, y al guardar regresas a isql 4> go
2. Redirección UNIX y Automatización
Usando etiquetas EOF:
isql -U sa -P pass << EOF > reporte.txt select count(*) from users go EOF
3. Verificación de Rendimiento
isql -p -U sapsa 1> update orders set status = 'CLOSE' 2> go 3 -- Ejecuta el comando 3 veces y saca medias de tiempo
Notas Técnicas Importantes
- Sobrescritura de flags: Si introduces una opción varias veces,
isqlusará el último valor indicado. - Precisión Flotante: Por defecto, isql muestra solo 6 dígitos decimales para
datos
floatoreal. - Archivos de entrada: Si usas
< input_filey no indicas-P, la primera línea del archivo debe ser la contraseña. - Comentarios: Puedes incluir comentarios estándar de T-SQL (
--o/* */) dentro de tus scripts de isql.