Series de caracteres

Los tipos de datos char(n) y nchar(n) representan cadenas de caracteres de longitud n. Los tipos de datos varchar(n) y nvarchar(n) representan cadenas de caracteres de longitud variable de longitud máxima n. Un carácter válido tiene un valor ASCII de 32 - 255.

Manejo de caracteres por parte del sistema

La tabla siguiente describe la forma en la que el sistema maneja los caracteres char, nchar, varchar y nvarchar:

Tabla 1. Manejo de caracteres
Tipo de cambio Tratamiento de caracteres
Relleno Los valores de char y nchar se rellenan hasta una longitud normal con espacios.

Los valores de varchar y nvarchar no se rellenan.

Truncamiento Si los datos son más largos que el campo, se producen las acciones siguientes:
  • El sistema graba el registro en el archivo nzbad.
  • El sistema graba un resumen de los registros erróneos en el archivo nzlog.

Puede activar el truncamiento automático con la opción -truncString para el mandato nzload.

Importante: Si utiliza esta opción para datos de caracteres Unicode, puede truncar los caracteres NFC combinados si superan la longitud de columna especificada. La opción no intenta conservar clústeres de grafema; trunca datos según sea necesario para que se ajusten al tamaño de columna especificado.

Reglas de restricción de columna para series vacías

Para todos los tipos de datos char y varchar, el resultado de insertar una cadena vacía y de introducir los valores de datos que faltan depende de si las columnas se declaran para que admitan nulos (valor predeterminado) o para que no admitan nulos (declaradas con restricción no nula). La tabla siguiente describe los diferentes casos.
Tabla 2. Regla de restricción de columna para cadenas vacías
Tipo de datos Restricción de columna Existe una señal nula La señal nula no existe
    señal nula '' (serie vacía) '' (serie vacía)
char y nchar

varchar y nvarchar

Nulo Nulo char y nchar: relleno de espacios

varchar y nvarchar: cadena de longitud cero

Nulo
NO NULL ERROR char y nchar: relleno de espacios

varchar y nvarchar: cadena de longitud cero

ERROR
bool, date, int (1,2,4,8), numeric(), float (4,8), time, timestamp, timetz Nulo Nulo Nulo Nulo
NO NULL ERROR ERROR ERROR

Si el registro contiene menos valores de datos que las columnas que ha definido en el esquema de la tabla, el sistema graba un error en el archivo nzlog y descarta el registro. Para alterar temporalmente este comportamiento, utilice la opción -fillRecord del mandato nzload. Esta opción, que se aplica a la operación de carga completa, le dice al sistema que utilice un valor nulo en lugar de los campos que falten. Puede utilizar esta opción si las columnas cuyos valores faltan permiten nulos. Si ha definido estas columnas como no nulas, el sistema graba un error en el archivo nzlog y descarta el registro. Puede resolver este conflicto cambiando el esquema para que permita valores nulos o modificando el archivo de datos para incluir un valor no nulo válido.