Definiciones de formato de longitud fija
Los archivos de formato de longitud fija deben tener una definición de formato. Este tema incluye ejemplos de definiciones de formato de longitud fija para tipos de datos típicos.
Final de registro
RecordDelim ''Se necesita
un delimitador de fin de registro, incluso para el último registro.La opción RecordDelim especifica una secuencia literal de hasta 8 bytes, que no traduce representaciones de escape comunes o no admite funciones como char(8).
Longitud de registro
Recordlength 72Omisión de campos
“filler char(4) bytes 4” “filler fld_name char(4) bytes 4”
Valores temporales
| Tipo de datos | Valor | Cláusula de formato |
|---|---|---|
| fecha | 20101231 | date1 date YMD'' bytes 8 |
| Hora | 231559 | time1 time(6) 24hour '' bytes 6 |
| indicación de fecha y hora | 0101231231559 | stamp1 timestamp(6) 24hour '' bytes 14 |
| indicación de fecha y hora | 20101231231559000001 | Cárguelos como char(24) y después utilice una sentencia
insert-select
|
| fecha | 2010-12-31 | date2 date YMD'-' bytes 10 |
| Hora | 23.15.59 | time2 time(6) 24hour '.' bytes 8 |
| indicación de fecha y hora | 2010-12-31 23:15:59 | tms2 timestamp(6) YMD '-' 24hour ':' bytes 19 |
| indicación de fecha y hora | 2010-12-31 23:15:59.0001 | tms3 timestamp(6)
YMD '-' 24hour ':' bytes 26 |
| timetz | 12:30:45+03:00 | Tz1
TIMETZ(6) 24HOUR ':' bytes 14 |
| timetz | 123045+-0300 | Cargar como char(11) y luego utilizar la sentencia insert-select
|
Valores numéricos
| Tipo de datos | Valor | Cláusula de formato |
|---|---|---|
| entero | 32767 | int1 int2
bytes 5 |
| int8 | 9123456789123456 | int2 int8 bytes 16 |
| numérico | 2315.59 | num1 numeric(6,2) bytes 7 |
| numérico | 231559 | Cárguelos
como char(6) y después utilice una sentencia insert-select
(col/100)::numeric(6,2) |
| flotante | 1.2345678 | flt1
floating bytes 9 |
| flotante | 12345678 | Cargar como char(8) y luego usar la sentencia insert-select(substring(col1,1,1)||'.'||substring(col1,2,7))::float |
| doble | 1.2345678 | flt1 double bytes 9 |
| doble | 12345678 | Cargar como char(8) y luego usar la sentencia insert-select
(substring(col1,1,1)||'.'||substring(col1,2,7))::double |
Valores lógicos
| Tipo de datos | Valor | Cláusula de formato |
|---|---|---|
| booleano | S o s, N o n | BOOL Y_N BYTES 1 |
| booleano | 1, 0 | BOOL 1_0 BYTES 1 |
| booleano | T o t, F o f | BOOL T_F BYTES 1 |
Valores nulos
- La palabra clave nullif
- La referencia de columna
- La expresión de prueba
- La especificación nullif es como sigue:
“nullif &=’99991231’” - La especificación completa es:
“fld1 date YMD'' bytes 8 nullif &=’99991231’” - Todas las especificaciones de formato dan soporte a la cláusula nullif.
Además de admitir &=, que evalúa que una "cadena debe coincidir
exactamente", la cláusula nullif admite &&=, que permite la coincidencia de las subcadenas. Esto resulta útil en casos donde la serie se puede dar en cualquier lugar de un campo con relleno de espacios. Por
ejemplo, nullif &&=’N’ coincide con las diferentes expresiones
“ N “, “N “ y “ N”.
| Tipo de datos | Valor nulo | Cláusula de formato |
|---|---|---|
| booleano | ' ' (1 espacio) | BOOL Y_N
BYTES 1 NULLIF &=' '(1 space) |
| fecha | 000000 | DATE YMD '' BYTES 6 NULLIF &='000000' |
| int | ' ' (6 espacios) | INT BYTES 6 NULLIF &=' '
(6 spaces) |