El mandato nzsql

El comando ' nzsql ' invoca un intérprete de comandos SQL en el host Netezza Performance Server o en un sistema cliente Netezza Performance Server. Puede utilizar este interprete de mandatos SQL para crear objetos de base de datos, ejecutar consultas y gestionar la base de datos.

Para ejecutar el mandato nzsql, especifique:
nzsql [options] [security options] [dbname [user] [password]]
En la tabla siguiente se describen los parámetros de mandato nzsql. Para obtener más información sobre los parámetros del comando y cómo utilizarlo, consulte la Guía del usuario deIBM® Netezza® Database.
Tabla 1. nzsql parámetros de mandato
Parámetros Descripción
-a Repite todas las entradas de un script.
-A Utilice la modalidad de salida de tabla no alineada. Esto equivale a especificar -P format=unaligned.
-csv Modalidad de salida de tabla CSV (valores separados por comas).
-c <query> Ejecuta una única consulta (o mandato de barra inclinada) y salga.
-d <dbname>
o
-D <dbname>
Especifica el nombre de la base de datos a la que se conecta. Si no especifica este parámetro, el mandato nzsql utiliza el valor especificado para la variable de entorno NZ_DATABASE (si está especificado) o le solicita una contraseña (si no lo está).
-schema <schemaname> Especifica el nombre del esquema al que se conectará. Esta opción se utiliza para Netezza Performance Server versión 7.0.3 y sistemas posteriores configurados para utilizar varios esquemas. Si el sistema no admite varios esquemas, este parámetro se ignora. Si no especifica este parámetro, el mandato nzsql utiliza el valor especificado para la variable de entorno NZ_SCHEMA (si se ha especificado) o un esquema que coincida con el nombre de cuenta de base de datos (si no se ha especificado y si enable_user_schema se ha establecido en TRUE), o el esquema predeterminado para la base de datos.
-e Repite las consultas que se envían al servidor.
-e Muestra consultas generadas por mandatos internos.
-f <file name> Ejecuta consultas de un archivo y finaliza a continuación.
-F <string> Establece el separador de campo. Por defecto: es una barra vertical (|). Esto equivale a especificar -P fieldsep=<string>.
-h Muestra ayuda para el mandato nzsql.
-H Establece la modalidad de resultados de la tabla en HTML. Esto equivale a especificar -P format=html.
-host <host> Especifica el nombre de host del servidor de base de datos.
-l Lista bases de datos disponibles, después sale.
-n Inhabilita la modalidad readline. Es necesario cuando la entrada utiliza un juego de caracteres de doble byte como el japonés, chino o coreano
-o <file name> Envía la salida de consulta al archivo especificado o, si se especifica una barra vertical (|) en lugar de un nombre de archivo, a un programa de sincronización.
-O <file name> Envía la salida de consulta y cualquier mensaje de error al archivo especificado o, si se especifica una barra vertical (|) en lugar de un nombre de archivo, a un programa de sincronización.
-P opt[=val] Establece la opción de impresión representada por opt para el valor representado por val.
-port <port> Especifica el puerto de servidor de bases de datos.
-pw <password> Especifica la contraseña del usuario de la base de datos. Si no especifica este parámetro, el mandato nzsql utiliza el valor especificado para la variable de entorno NZ_PASSWORD (si se especifica) o le solicita que entre una contraseña (si no se especifica).
-q Se ejecuta silenciosamente, es decir, sin emitir mensajes. Sólo se devuelve la salida de la consulta.
-R Suprime el recuento de filas que de lo contrario se muestran al final de la salida de la consulta.
-R <string> Establece el separador de registros. El valor predeterminado es el carácter de nueva línea. Esto equivale a especificar -P recordsep=<string>.
-s Utiliza la modalidad de un solo paso, que requiere que se confirme cada una de las consultas.
-S Utiliza la modalidad de una sola línea, lo que hace que el carácter de nueva línea finalice una consulta.
-t Imprime sólo filas. Esto equivale a especificar -P tuples_only.
-tiempo Imprime el tiempo que se utiliza para las consultas.
-T <text> Establece las opciones del distintivo de tabla HTML como el ancho y el borde. Esto equivale a especificar -P tableattr=<text>.
-u <username>
o
-U <username>
Especifica el nombre de usuario de la base de datos. Si no especifica este parámetro, el mandato nzsql utiliza el valor especificado para la variable de entorno NZ_USER (si se especifica) o le solicita que entre un nombre de usuario (si no se especifica).
-v <name>=<value> Establece la variable de sesión especificada para el valor especificado. Especifique este parámetro una vez para cada variables que se va a establecer, por ejemplo:
nzsql -v HISTSIZE=600 -v USER=user1 -v PASSWORD=password
-v Muestra la información de la versión y sale.
-w No requiere una contraseña para el usuario de base de datos. La contraseña se facilita por medio de otros mecanismos (Kerberos, por ejemplo).
-W <password> Especifica la contraseña del usuario de la base de datos. (Igual que -pw.)
-x Expande el resultado de la tabla. Esto equivale a especificar -P expanded.
-X No lee el archivo de inicio (~/.nzsqlrc).
<nivel> -securityLevel Especifique el nivel de seguridad (seguro o no seguro) para una conexión de cliente al sistema Netezza Performance Server. Esta opción no se aplica cuando se ha iniciado sesión en el sistema Netezza Performance Server y se ejecuta el comando.
preferredUnSecured
Prefiere una conexión no protegida, pero aceptará una conexión protegida si el sistema está configurado para utilizar sólo conexiones protegidas. Este es el valor predeterminado.
preferredSecured
Prefiere una conexión protegida, pero aceptará una conexión no protegida si el sistema está configurado para utilizar sólo conexiones no protegidas.
onlyUnSecured
Requiere una conexión no protegida. Si el sistema está configurado para utilizar sólo conexiones protegidas, el intento de conexión se rechaza.
onlySecured
Requiere una conexión protegida. Si el sistema está configurado para utilizar sólo conexiones no protegidas o tiene un nivel de release anterior a 4.5, el intento de conexión se rechaza.
-caCertFile <path> Especifica el nombre de vía de acceso del archivo de certificado de la entidad emisora de certificados raíz en el sistema cliente. Esta opción es utilizada por clientes ' Netezza Performance Server ' que utilizan autenticación por pares para verificar el sistema anfitrión ' Netezza Performance Server. El valor predeterminado es NULL, que omite el proceso de autenticación entre iguales.
-cadena_parcial Permite la verificación parcial de los certificados que carecen de una cadena de certificados completa (jerarquía de certificados de dos niveles). Debe utilizarse junto con la opción -caCertFile.
-z Establece el separador de campo para una salida no alineada en un byte cero.
-0 Establece el separador de registro para una salida no alineada en un byte cero.

Dentro del intérprete de comandos ' nzsql ', introduzca ' \? para obtener ayuda.

Tema general
\g [FILE]
Ejecute una consulta. Y da como resultado un archivo o un |pipe. Tiene el mismo efecto que finalizar la consulta con un punto y coma.
\q
Salga de nzsql.
Ayuda
\?
Lista y muestra ayuda sobre todos los mandatos de barra inclinada invertida.
\h <COMMAND>
Muestra la ayuda para todos los mandatos SQL.
Almacenamiento intermedio de consultas
\e [FILE]
Edita el almacenamiento intermedio de consulta actual (o archivo) con editor externo. (Sin soporte en Windows.)
\p
Muestra el contenido del almacenamiento intermedio de consultas.
\s [FILE]
Muestra el historial o lo guarda en un archivo. (Sin soporte en Windows.)
\w [FILE]
Graba el almacenamiento intermedio de consultas en un archivo.
Entrada/salida
\copy ...
Realiza una SQL COPY con flujo de datos para el host de cliente.
\echo [STRING]
Escribe una serie en la salida estándar.
\i FILE
Lee y ejecuta consultas desde <file>.
\o [FILE]
Envía todos los resultados de consulta a un archivo o |pipe.
\O [FILE]
Envía la salida de consulta con errores a un archivo o |pipe.
\qecho [STRING]
Escribe una serie en el flujo de salida de consulta (consulte \o).
Informativo
\d NAME
Describe una tabla (o vista, secuencia, sinónimo, un índice).
\dO NAME
Describe una tabla o vista en un orden de clasificación.
\d{t|v|i|s|e|x}
Lista tablas/vistas/índices/secuencias/tablas temporales/tablas externas.
\d{m|y}
Lista vistas materializadas/sinónimos.
\dS{t|v|i|s}
Lista tablas/vistas/índices/secuencias del sistema.
\dM{t|v|i|s}
Lista tablas/vistas/índices/secuencias de la gestión del sistema.
\dp NAME
Lista permisos de usuario.
\dpu NAME
Lista permisos otorgados a un usuario.
\dpg NAME
Lista permisos otorgados a un grupo.
\dpr NAME
Lista permisos otorgados a un rol.
\dgp NAME
Lista permisos grant para un usuario.
\dgpu NAME
Lista permisos de otorgamiento, otorgados a un usuario.
\dgpg NAME
Lista los permisos de otorgamiento otorgados a un grupo.
\d{u|U}
Lista usuarios/grupos de usuarios.
\d{g|G|Gr}
Lista grupos/usuarios del grupo/usuarios del grupo de recursos.
\da[+] [NAME]
Lista agregados, + para campos adicionales.
\dd [object]
Lista un comentario para el objeto.
\df[+] [NAME]
Lista funciones, + para campos adicionales.
\dl[+] [NAME]
Lista bibliotecas, + para campos adicionales.
\do
Lista los operadores.
\dT
Lista tipos de datos.
\l[+]
Lista todas las bases de datos, + para campos adicionales.
Formateado
\a
Alterna entre modalidad alineada y modalidad no alineada.
\C [STRING]
Establece el título de la tabla o no se establece si none.
\f [STRING]
Muestra o establece el separador de campos para la salida de consulta no alineada.
\H
Alterna la modalidad de salida HTML (actualmente desactivada).
\pset [NAME [VALUE]]
Establece la opción de salida de tabla: (border|columns|csv_fieldsep|expanded|fieldsep| fieldsep_zero|footer|format|linestyle|null| numericlocale|pager|pager_min_lines|recordsep| recordsep_zero|tableattr|title|tuples_only| unicode_border_linestyle|unicode_column_linestyle| unicode_header_linestyle)
Tabla 2.
Opciones Descripción
\pset Muestra todos los valores de impresión actuales.
\pset border [<numérico>] Establece el ancho de borde.
\pset columns [<numérico>] Establece el ancho de columna de destino.
\pset csv_fieldsep [<carácter>] Establece el separador de campos para el formato de impresión csv. <carácter> puede ser cualquier carácter de un byte excepto '"', '\n', '\r'.
\pset expanded [on | off | auto] Establece la representación ampliada de impresión.
\pset x [on | off | auto]
\pset vertical [on | off | auto]
\pset fieldsep [<string>] Establece el separador de campo de una tabla.
\pset fieldsep_zero Establece el separador de campo de una tabla en un byte cero.
\pset footer [on | off] Habilita/inhabilita el pie de página "(x filas)".
\pset format [unaligned | aligned | html | latex | latex-longtable |asciidoc |csv |troff-ms | wrapped] Establece el formato de impresión de una tabla. Si no se proporciona ninguna opción, muestra el valor actual.
\pset linestyle [ascii | old-ascii | unicode] Establece los estilos de línea de borde.
\pset null [<string>] Establece la serie que debe imprimirse en lugar de un valor nulo.
\pset numericlocale [on | off] Establece la modalidad separada por comas para el número.
\pset pager [on | off | always] Establece si se debe usar paginador o no para la salida.
\pset pager_min_lines [<numérico>] Establece el número mínimo de líneas para el paginador.
\pset recordsep [<string>] Establece el separador de registro (fila) de una tabla.
\pset recordsep_zero Establece el separador de campo de una tabla en un byte cero.
\pset tableattr [<string>] Especifica los atributos que se van a colocar dentro del código de tabla HTML en el formato de salida html.
\pset title [<string>] Establece el título de la tabla para las tablas impresas posteriormente.
\pset tuples_only [on | off] Establece la modalidad de sólo datos de impresión (sin cabeceras ni pies de página).
\pset t [on | off]
\pset unicode_border_linestyle [simple | doble] Establece el estilo de línea de borde de una tabla Unicode. Si no se proporciona ninguna opción, muestra el valor actual.
\pset unicode_column_linestyle [simple | doble] Establece el estilo de línea de columna de una tabla Unicode. Si no se proporciona ninguna opción, muestra el valor actual.
\pset unicode_header_linestyle [simple | doble] Establece el estilo de línea de cabecera de una tabla Unicode. Si no se proporciona ninguna opción, muestra el valor actual.
Para más información, consulte esta página.
\t [on|off]
Muestra solo filas (actualmente desactivado).
\T [STRING]
Establece los atributos de código HTML <table>, o queda sin establecer si no hay ninguno.
Conexión
\act
Muestra las sesiones activas actuales.
\c[onnect] [DBNAME [USER] [PASSWORD]]
Se conecta a la nueva base de datos (actualmente 'TEST_NZSQL_PSET_DB').
Sistema operativo
\time [on|off]
Alterna el tiempo de los mandatos (actualmente desactivado).
\! [COMMAND]
Escape o comando de shell. (Sin soporte en Windows.)
Variables
\set [NAME [VALUE]]
Establece la variable interna o lista todos si no hay parámetros.
\unset NAME
Desestablece (suprime) una variable interna.

Diferencias del comportamiento de nzsql en clientes UNIX y Windows

A partir de la versión 7.2.1 NPS, el comando ' nzsql ' se incluye como parte del kit de cliente de Windows. En un entorno Windows, tenga en cuenta que hay diferencias de comportamiento cuando los usuarios pulsan la tecla Intro o la secuencia de claves Control-C a cuando lo hacen en un entorno de línea de mandatos de UNIX nzsql. El entorno de indicador de mandatos Windows no soporta muchas de las opciones y formatos de mandatos de UNIX comunes. Sin embargo, si el cliente Windows está utilizando un entorno Linux como cygwin u otros, el mandato nzsql.exe puede soportar más de las opciones de línea de mandatos sólo UNIX anotadas en la documentación.

En un entorno UNIX, si está escribiendo una consulta SQL de varias líneas en un shell de línea de mandatos nzsql, la tecla Intro actúa como un carácter de nueva línea para aceptar la entrada para la consulta hasta que escribe un carácter de punto y coma y pulsa Intro. El indicador de shell también cambia de => a -> para las líneas subsiguientes de la entrada.

MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Enter)
MYDB.SCH(USER)-> ; (press Enter)

 COUNT
-------
  1274
(1 row)

En un entorno UNIX, si pulsa Control-C, se cancela toda la consulta y regresa al indicador de mandatos:

MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Control-C)
MYDB.SCH(USER)=> 

En un entorno Windows, si está escribiendo una consulta SQL de varias líneas en un shell de línea de mandatos nzsql, la tecla Intro actúa como un carácter de nueva línea para aceptar la entrada para la consulta hasta que escribe un carácter de punto y coma y pulsa Intro.

MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Enter)
MYDB.SCH(USER)-> ; (press Enter)

 COUNT
-------
  1274
(1 row)

Sin embargo, en un entorno Windows, las secuencias de clave Control-C o Interrupción-Control no cancelan la consulta de varias líneas, en lugar de eso cancelan sólo la línea de la entrada de consulta:

MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Control-C)
MYDB.SCH(USER)-> ; (press Enter)

 COUNT
-------
 100000
(1 row)

Control-C (o una interrupción de control) ha cancelado la cláusula WHERE en la tercera línea de entrada, y los resultados de la consulta han sido más largos sin la restricción. En una única línea de entrada (donde la solicitud es =>, tenga en cuenta que Control-C cancela la consulta y le devuelve al indicador de mandatos nzsql

MYDB.SCH(USER)=> select count(*) from ne_part (press Control-C)
MYDB.SCH(USER)=> 

nzsql requiere el mandato more en Windows

Al ejecutar el comando ' nzsql ' en un cliente Windows, podría aparecer el errormore not recognized as an internal or external command. Este error se produce porque ' nzsql ' utiliza el comando ' more ' para procesar los resultados de la consulta. El error indica que el mandato nzsql no se puede ubicar en el mandato more en el cliente Windows.

Para corregir el problema, añada el ejecutable del mandato more.com a la variable de entorno PATH del sistema cliente. Cada versión del sistema operativo Windows tiene una forma un poco diferente de modificar las variables de entorno, por lo tanto, haga referencia a la documentación de Windows para obtener instrucciones específicas. En un sistema Windows 7, puede utilizar un proceso similar al siguiente:

  • Haga clic en Inicio y escriba " environment " en el campo de búsqueda. En los resultados de búsqueda, pulse Editar las variables de entorno del sistema. El cuadro de diálogo Propiedades del sistema se abre y muestra la pestaña Avanzado.
  • Pulse en Variables de entorno. Se abre el cuadro de diálogo Variables de entorno.
  • En la lista Variables del sistema, seleccione la variable Vía de acceso y pulse Editar. Se abre el cuadro de diálogo Editar variable del sistema.
  • Coloque el cursor al final del campo de valor Variable. Puede pulsar en cualquier lugar en el campo y, a continuación, pulse Fin para llegar al final del campo.
  • Añade el valor ' C:\Windows\System32; ' al final del campo Path. Asegúrese de que utiliza un carácter de punto y coma y escriba un carácter de espacio al final de la serie. Si el sistema tiene un archivo more.com en un directorio que no es C:Windows\System32, utilice el nombre de vía de acceso que se aplica en su cliente.
  • Pulse Aceptar en el cuadro de diálogo Editar variable del sistema, a continuación, pulse Aceptar en el cuadro de diálogo Variables de entorno y, después, pulse Aceptar en el cuadro de diálogo Propiedades del sistema.

Después de realizar este cambio, el comando ' nzsql ' debería ejecutarse sin mostrar el mensajemore not recognizederror.