Sentencia CREATE EXTERNAL TABLE
Mientras que las tablas normalmente residen en una base de datos, una tabla externa reside en un archivo delimitado basado en texto o en un archivo de formato de longitud fija fuera de una base de datos.
- Almacenar datos fuera de la base mientras se conserva la capacidad de consultar esos datos. Para descargar datos de la base de datos en un archivo externo, especifique la tabla externa como la tabla de destino en una de las sentencias SQL siguientes:
- INSERT SQL
- SELECT INTO SQL
- CREATE EXTERNAL TABLE AS SELECT SQL
- Cargar datos de un archivo externo en una tabla en la base de datos. Puede realizar operaciones como, por ejemplo, conversiones, uniones y descartar columnas para manipular datos durante la carga. Para cargar datos en la base de datos desde una tabla externa, utilice una cláusula FROM en una sentencia SELECT SQL como lo haría para cualquier otra tabla.
- Transferir datos a otra aplicación.
Una ventaja de utilizar tablas externas para los procesos de Extracción-Transformación-Carga (ETL) es que se pueden realizar utilizando un SQL simple. Puesto que el proceso ETL basado en SQL se puede iniciar desde cualquier cliente SQL, elimina la necesidad de herramientas ETL especiales.
- Con nombre
- La tabla externa tiene un nombre y una entrada de catálogo similar a una tabla normal.
- Transitoria
- La tabla externa tiene un nombre generado por el sistema con el formato
SYSTET<número>y no tiene una entrada de catálogo. Por ejemplo, el sistema podría crear una tabla externa transitoria para contener el resultado de una consulta. El tiempo de vida de esa tabla es la duración de la consulta.
Invocación
Esta sentencia se puede incluir en un programa de aplicación o se puede emitir mediante sentencias SQL dinámicas. Es una sentencia ejecutable que puede prepararse de forma dinámica sólo si el comportamiento de ejecución de DYNAMICRULES está en vigor para el paquete (SQLSTATE 42509).
Autorización
- Autorización CREATETAB
- Uno de estos privilegios o autorizaciones:
- Privilegio USE en el espacio de tablas
- Autorización SYSADM
- Autorización SYSCTRL
- Uno de estos privilegios o autorizaciones:
- La autorización IMPLICIT_SCHEMA en la base de datos (si no existe el nombre de esquema implícito o explícito de la tabla)
- El privilegio CREATEIN en el esquema (si el nombre de esquema de la tabla hace referencia a un esquema existente)
- La autorización SCHEMAADM en el esquema (si el nombre del esquema de la tabla hace referencia a un esquema existente)
- El ID de autorización debe ser el mismo que el propietario de la tabla raíz de la jerarquía de tablas.
- Los privilegios que tiene el ID de autorización deben incluir la autorización SCHEMAADM en el esquema que contiene la tabla raíz de la jerarquía de tabla.
- Los privilegios que tiene el ID de autorización deben incluir la autorización DBADM.
Sintaxis
La sintaxis de esta sentencia depende de la naturaleza de la tabla externa que se va a crear:- Utilice la sintaxis siguiente para crear, en el catálogo, una definición de tabla para una nueva tabla externa. Especificar un nombre de tabla es obligatorio, así que la tabla externa resultante es una tabla con nombre. Se debe especificar una opción DATAOBJECT o FILE_NAME para identificar el archivo de destino.
- Utilice la sintaxis siguiente para utilizar una tabla existente como una plantilla para una nueva tabla externa y para llenarla con el contenido de la tabla de origen. Si esta sentencia especifica un nombre de tabla explícitamente, la tabla externa resultante es una tabla con nombre; de lo contrario, la tabla externa resultante es una tabla transitoria. El nombre de archivo se debe especificar mediante el parámetro
file-nameo una opción DATAOBJECT o FILE_NAME.
Descripción
- nombre-tabla
- Nombres de la tabla externa. El nombre, incluyendo el calificador implícito o explícito, no debe identificar una tabla, vista, apodo o alias que ya está descrito en el catálogo. El nombre del esquema no puede ser SYSIBM, SYSCAT, SYSFUN o SYSSTAT (SQLSTATE 42939).
- nombrearchivo
- Nombre completo del archivo (o cualquier soporte que pueda tratarse como archivo) que
va a contener la tabla externa que se va a crear. Si se especifica este parámetro, la opción
DATAOBJECT o FILE_NAME no se puede especificar.
- Para un servicio gestionado basado en la nube como
Db2 Warehouse on Cloud, si la opción REMOTESOURCE se
establece en LOCAL (este es el valor predeterminado), la vía de acceso al archivo de la
tabla externa es relativa al directorio de inicio de
Servicios gestionados Db2.
De lo contrario, la vía de acceso al archivo de tabla externa es relativa a la vía de
acceso
/home/seguida por el ID de autorización del definidor de tabla. Por ejemplo, si el ID de autorización del definidor de la tabla esuser1, la vía de acceso al archivo de tabla externa es relativa a/home/user1/. - Para un producto local como
Db2 Warehouse, si la opción REMOTESOURCE
está establecida en LOCAL (el valor predeterminado) y el parámetro de configuración
extbl_strict_io está establecido en NO, la vía de acceso al archivo
de tabla externa es una vía absoluta y debe ser una de las vías de acceso especificadas
por el parámetro de configuración extbl_location. De lo contrario,
la vía de acceso al archivo de tabla externa es relativa a la vía de acceso especificada
por el parámetro de configuración extbl_location seguida por el ID
de autorización del definidor de tabla. Por ejemplo, si
extbl_location se ha establecido en
/home/xyzy el ID de autorización del definidor de tabla esuser1, la vía de acceso al archivo de tabla externa es relativa a/home/xyz/user1/.
El nombre de archivo debe ser una serie UTF-8 válida.
Para una operación de carga, se aplican las condiciones siguientes:- El archivo ya debe existir.
- Permisos necesarios:
- Si la tabla externa es una tabla externa con nombre, el propietario debe tener el permiso de escritura para el archivo y el permiso de escritura para el directorio LOGDIR.
- Si la tabla externa es una tabla externa transitoria, el ID de autorización de la sentencia debe tener el permiso de lectura para el archivo y el permiso de escritura para el directorio LOGDIR.
- Si el archivo existe, se sobrescribe.
- Permisos necesarios:
- Si la tabla externa es una tabla externa con nombre, el propietario debe tener permiso de lectura y escritura para el directorio de este archivo.
- Si la tabla externa es transitoria, el ID de autorización de la sentencia debe tener permiso de lectura y escritura para el directorio de este archivo.
- Para un servicio gestionado basado en la nube como
Db2 Warehouse on Cloud, si la opción REMOTESOURCE se
establece en LOCAL (este es el valor predeterminado), la vía de acceso al archivo de la
tabla externa es relativa al directorio de inicio de
Servicios gestionados Db2.
De lo contrario, la vía de acceso al archivo de tabla externa es relativa a la vía de
acceso
- definición-columna
- Define los atributos de una columna.
- nombre-columna
- Es el nombre de una columna de la tabla. El nombre no puede estar calificado y no puede utilizarse el mismo nombre para más de una columna de la tabla (SQLSTATE 42711).
- tipo-incorporado
- Uno de los siguientes tipos de datos incorporados:
- SMALLINT
- Entero pequeño.
- [INTEGER | INT]
- Entero grande.
- BIGINT
- Entero muy grande.
- [DECIMAL | DEC | NUMERIC | NUM](entero-precisión, entero-escala)
- Un número decimal.
- El entero de precisión especifica el número total de dígitos. Debe estar dentro del rango de 1 ‑ 31. El valor predeterminado es 5.
- El entero de escala especifica el número de dígitos a la derecha de la coma decimal. No puede ser negativo y no puede superar la precisión. El valor por omisión es 0.
- FLOAT(entero)
- Número de coma flotante individual o de doble precisión. Si la longitud especificada está en el rango:
- 1 - 24, el número utiliza la precisión individual
- 25 - 53, el número utiliza la precisión doble
En lugar de FLOAT, puede especificar:- REAL
- Para especificar un valor de coma flotante de precisión simple.
- DOUBLE
- Para especificar coma flotante de precisión doble.
- DOUBLE PRECISION
- Para especificar coma flotante de precisión doble.
- FLOAT
- Para especificar coma flotante de precisión doble.
- DECFLOAT(entero-precisión)
- Número decimal de coma flotante. El entero de precisión especifica el número total de dígitos, puede ser 16 o 34. El valor por omisión es 34.
- [CHARACTER | CHAR](entero [OCTETS | CODEUNITS32])
- Serie de caracteres de longitud fija del número de unidades de código especificado. Este número puede oscilar de 1 ‑ 255 OCTETS o de 1 - 63 CODEUNITS32. El valor por omisión es 1.
- [VARCHAR | CHARACTER VARYING | CHAR VARYING](entero [OCTETS | CODEUNITS32])
- Serie de caracteres de longitud variable del número de unidades de código especificado. Este número puede oscilar de 1 ‑ 32672 OCTETS o de 1 - 8168 CODEUNITS32.
- FOR BIT DATA
- Especifica que el contenido de la columna se tratará como datos de bit (binarios). Durante el intercambio de datos con otros sistemas, no se efectúan conversiones de página de códigos. Las comparaciones se efectúan en binario, sin tener en cuenta el orden de clasificación de la base de datos.
- [CLOB | CHARACTER LARGE OBJECT | CHAR LARGE OBJECT](entero [K] [OCTETS | CODEUNITS32])
- Serie de objetos grandes de caracteres con una longitud máxima del número de unidades de código especificado. La longitud máxima predeterminada es 65.535
bytes.Si desea multiplicar el entero de longitud por 1024, especifique un multiplicador K (kilo) .
- Independientemente de si utiliza o no un multiplicador K, la longitud resultante está limitada a la longitud máxima de una columna CLOB en una tabla externa, que es 65.535 OCTETS, 32.767 CODEUNITS16 o 16.383 CODEUNITS32. Tenga en cuenta que 64K OCTETS y 16K CODEUNITS32 exceden cada uno la longitud máximo por uno y, por lo tanto, no están permitidos.
- Cualquier número de espacios (incluidos los espacios de cero) está permitido entre el tipo de datos y la especificación de longitud o entre el entero de longitud y el multiplicador K. Por ejemplo, las especificaciones siguientes son todas equivalentes y válidas:
CLOB(50K) CLOB(50 K) CLOB (50 K) - El multiplicador K se puede especificar el mayúsculas o minúsculas.
Las unidades de serie predeterminadas son OCTETS.
- OCTETS
- Especifica que las unidades del atributo de longitud son bytes.
- CODEUNITS32
- Especifica que las unidades del atributo de longitud son unidades de código Unicode UTF-32 que aproximan el recuento en caracteres. Esto no afecta la página de códigos subyacente del tipo de datos. La longitud real de un valor de datos se determina contando las unidades de código UTF-32 como si los datos se hubieran convertido a UTF-32.
- GRAPHIC(entero [CODEUNITS16 | CODEUNITS32])
- Una serie gráfica de longitud fija de la longitud especificada, que puede oscilar de 1 ‑ 127 bytes dobles, de 1 ‑ 127 CODEUNITS16 de 1 ‑ 63 CODEUNITS32. La longitud predeterminada es 1.
- VARGRAPHIC(entero [CODEUNITS16 | CODEUNITS32])
- Una serie gráfica de longitud variable de la longitud máxima especificada, que puede oscilar de 1 ‑ 16336 bytes dobles, de 1 ‑ 16336 CODEUNITS16 o de 1 ‑ 8168 CODEUNITS32.
- DBCLOB(entero [K] [CODEUNITS16 | CODEUNITS32])
- Serie de gran objeto de caracteres de la longitud máxima especificada
en bytes dobles, unidades de código Unicode UTF-16 o unidades de código Unicode UTF-32. La longitud máxima predeterminada es 32.767 doble bytes.Si desea multiplicar el entero de longitud por 1024, especifique un multiplicador K (kilo) .
- Independientemente de si utiliza o no un multiplicador K, la longitud resultante está limitada por la longitud máxima de una columna DBCLOB en una tabla externa, que es 32.767 CODEUNITS16 o 16.383 CODEUNITS32. Tenga en cuenta que 32K CODEUNITS16 y 16K CODEUNITS32 exceden cada uno la longitud máxima por uno y, por lo tanto, no están autorizados.
- Cualquier número de espacios (incluidos los espacios de cero) está permitido entre el tipo de datos y la especificación de longitud o entre el entero de longitud y el multiplicador K. Por ejemplo, las especificaciones siguientes son todas equivalentes y válidas:
DBCLOB(50K) DBCLOB(50 K) DBCLOB (50 K) - El multiplicador K se puede especificar el mayúsculas o minúsculas.
Las unidades de serie predeterminadas son CODEUNITS16.
- CODEUNITS16
- Especifica que las unidades del atributo de longitud son unidades de código Unicode UTF-16, que es lo mismo que contar en doble bytes.
- CODEUNITS32
- Especifica que las unidades del atributo de longitud son unidades de código Unicode UTF-32. Esto no afecta la página de códigos subyacente del tipo de datos. La longitud real de un valor de datos se determina contando las unidades de código UTF-32 como si los datos se hubieran convertido a UTF-32.
- [NATIONAL CHARACTER | NATIONAL CHAR | NCHAR](entero)
- Serie de longitud fija de la longitud especificada. La longitud predeterminada es 1.
El tipo NATIONAL CHARACTER se correlaciona con una serie de caracteres de longitud fija con unidades de serie CODEUNITS32.
- [NATIONAL CHARACTER VARYING | NATIONAL CHAR VARYING | NCHAR VARYING | NVARCHAR](entero)
- Serie de longitud variable de la longitud máxima especificada.
El tipo NATIONAL CHARACTER VARYING se correlaciona con una serie de caracteres de longitud variante con unidades de serie CODEUNITS32.
- [NATIONAL CHARACTER LARGE OBJECT | NCHAR LARGE OBJECT | NCLOB](entero [K])
- Serie de objeto grande de la longitud máxima especificada. La longitud máxima
predeterminada es 16.383 doble bytes.
Este tipo de datos correlaciona un objeto grande de carácter (CLOB) con unidades de serie CODEUNITS32. Consulte la descripción del parámetro CLOB si desea información sobre los posibles valores para el entero de longitud y sobre cómo utilizar un K (kilo) .
- BINARY(entero)
- Una serie binaria de longitud fija de la longitud especificada, que debe estar dentro del rango de 1 ‑ 255 bytes. La longitud predeterminada es 1.
- [VARBINARY | BINARY VARYING](entero)
- Una serie binaria de longitud variable de la longitud máxima especificada, que debe estar dentro del rango de 1 ‑ 32672 bytes.
- [BLOB | BINARY LARGE OBJECT](entero [K])
- Serie de objeto binario grande con una longitud máxima del número de unidades de código especificado. La longitud máxima predeterminada es 65.535
bytes.Si desea multiplicar el entero de longitud por 1024, especifique un multiplicador K (kilo) .
- Independientemente de si utilizar o no un multiplicador K, la longitud resultante está limitada por la longitud máxima de una columna BLOB en una tabla externa, que es 65.535 bytes. Tenga en cuenta que 64k excede la longitud máxima por uno y, por lo tanto, no está autorizado.
- Cualquier número de espacios (incluidos los espacios de cero) está permitido entre el tipo de datos y la especificación de longitud o entre el entero de longitud y el multiplicador K. Por ejemplo, las especificaciones siguientes son todas equivalentes y válidas:
BLOB(50K) BLOB(50 K) BLOB (50 K) - El multiplicador K se puede especificar el mayúsculas o minúsculas.
- DATE
- Fecha.
- TIME
- Hora.
- TIMESTAMP(entero) o TIMESTAMP
- Indicación de fecha y hora. El entero especifica el número de posiciones decimales para fracciones de segundo, de 0 (segundos) a 12 (picosegundos). El valor predeterminado es 6 (microsegundos).
- BOOLEAN
- Valor booleano.
- LIKE nombre1-tabla o nombre-vista o apodo
- Especifica que las columnas de la tabla tienen el
mismo nombre y descripción que las columnas de la tabla
(nombre-tabla-1), la vista
(nombre-vista) o el apodo
(apodo).
La tabla, vista o apodo especificado debe existir en el catálogo o debe ser una tabla temporal declarada. No se puede especificar una tabla con tipo ni una vista
con tipo (SQLSTATE 428EC). El uso de LIKE es una definición implícita de n columnas, donde n es el número de columnas de la tabla identificada (incluidas las columnas implícitamente ocultas), vista o apodo. Una columna de la tabla nueva que se corresponde a una columna implícitamente oculta de la tabla existente también se definirá como implícitamente oculta. La definición implícita depende de lo que se especifique después de LIKE:
- Si se especifica una tabla, la definición implícita incluye el nombre de columna, tipo de datos, atributo oculto y la posibilidad de contener nulos de cada una de las columnas de la tabla. Si no se especifica EXCLUDING COLUMN DEFAULTS, también se incluye el valor por omisión de la columna.
- Si se especifica una vista, la definición implícita incluye el nombre de columna, tipo de datos y posibilidad de contener nulos de cada columna resultante de la selección completa definida en dicha vista. Los tipos de datos de las columnas de la vista deben ser tipos de datos válidos para las columnas de una tabla.
- Si se especifica un apodo, la definición implícita incluye el nombre de columna, tipo de datos y la posibilidad de contener nulos de cada columna de dicho apodo.
- Si se especifica una tabla protegida, la tabla nueva hereda la misma política de seguridad y las mismas columnas protegidas que la tabla identificada.
- Si se especifica una tabla y si dicha tabla contiene una columna row-begin, una columna row-end o una columna transaction-start-ID, la columna correspondiente de la nueva tabla solo hereda el tipo de datos de la columna de origen. La nueva columna no se considera una columna generada.
- Si se especifica una tabla que incluye un periodo en la cláusula LIKE, la nueva tabla no hereda la definición de periodo.
- Si se especifica una tabla temporal de periodo del sistema, la nueva tabla no es una tabla temporal de periodo de sistema.
- Si se especifica una tabla de distribución aleatoria que utiliza el método aleatorio por generación, y si la nueva tabla que se está creando no comparte la misma distribución de tablas, no se incluye la columna RANDOM_DISTRIBUTION_KEY que se utiliza para generar los valores de distribución aleatoria.
Los atributos predeterminados de columna se pueden incluir o excluir, basándose en las cláusulas de atributos de copia. La definición implícita no incluye ningún otro atributo de la tabla, vista o apodo especificado. Por lo tanto, la tabla nueva no tiene ninguna clave primaria, restricciones exclusivas, restricciones de clave foránea, restricciones de integridad referencial, desencadenantes, índices, especificación ORGANIZE BY o especificación PARTITIONING KEY.
Cuando una tabla se identifica en la cláusula LIKE y dicha tabla contiene una columna ROW CHANGE TIMESTAMP, la columna correspondiente de la nueva tabla hereda sólo el tipo de datos de la columna ROW CHANGE TIMESTAMP. La nueva columna no se considera una columna generada.
Si se especifica una tabla, y está activado el control de acceso de nivel de fila o de columna para dicha tabla, la nueva tabla no lo hereda.
- opción
- Las opciones siguientes controlan la carga de datos o la recuperación de datos de un archivo de tabla externa. El valor de cada opción es una serie de texto y no distingue entre mayúsculas y minúsculas.
- BOOLSTYLE o BOOLEAN_STYLE
- Durante una operación de carga, todos los valores booleanos deben utilizar el mismo estilo. Esta opción especifica el estilo booleano que se va a utilizar:
- 1_0 (este es el valor predeterminado)
- T_F
- Y_N
- YES_NO
- TRUE_FALSE
- CARDINALITY
- Valor entero positivo distinto de cero que se utiliza para sustituir la estimación del número esperado de filas devueltas.
- CCSID
- Identificador de juego de caracteres codificados (CCSID) del archivo de datos de
entrada. El valor puede ser cualquier valor de entero válido de la especificación CCSID. No hay ningún valor predeterminado. Las
opciones CCSID y ENCODING se excluyen entre sí cuando el valor de la opción ENCODING es
UTF8, LATIN9 o INTERNAL.Los estilos que se utilizan para las fechas y las horas dependen de si se ha especificado CCSID:
- Cuando se ha especificado un CCSID, y cuando no se han especificado DATESTYLE, TIMESTYLE, DATEDELIM o TIMEDELIM, se utilizan los valores o valores predeterminados para DATE_FORMAT, TIME_FORMAT y TIMESTAMP_FORMAT.
- Cuando no se ha especificado un CCSID, y cuando no se han especificado TIMESTAMP_FORMAT, DATE_FORMAT o TIME_FORMAT, se utilizan los valores o valores predeterminados para DATESTYLE, TIMESTYLE, DATEDELIM y TIMEDELIM.
- COMPRESS
- En una operación de descarga, si los datos de archivo de datos de origen están
comprimidos:
- GZIP
- Los datos de archivo de datos de origen se comprimen utilizando el algoritmo de compresión GZIP.
- NO
- Los datos de archivo de datos de origen no están comprimidos. Es el valor por omisión.
- CRINSTRING
- Cómo interpretar un carácter de retorno de carro (CR) sin escape o un carácter de
salto de línea de retorno de carro (CRLF):
- TRUE o ON
- Un carácter CR sin escape se interpreta como datos, no como un delimitador de registro. Un carácter CRLF sin escape se divide en un carácter CR, que se interpreta como datos, y un carácter LF, que se interpreta como delimitador de registro.
- FALSE o OFF
- Un carácter CR sin escape o un carácter CRLF se interpreta como delimitador de registro. Es el valor por omisión.
- CTRLCHARS
- Si se va a permitir un valor ASCII 1 - 31 en un campo CHAR o VARCHAR. Se debe incluir un valor de escape en cualquier carácter NULL, CR o LF. Los valores permitidos son:
- TRUE o ON
- Está permitido un valor ASCII 1 - 31 en un campo CHAR o VARCHAR.
- FALSE o OFF
- No está permitido un valor ASCII 1 - 31 en un campo CHAR o VARCHAR. Es el valor por omisión.
- DATAOBJECT o FILE_NAME
- Nombre completo del archivo (o cualquier soporte que pueda tratarse como archivo) que
va a contener la tabla externa que se va a crear. Esta opción es obligatoria cuando el
nombre del archivo no se especifica inmediatamente después del nombre de tabla; de lo
contrario, no se permite.
- Para un servicio gestionado basado en la nube como
Db2 Warehouse on Cloud, si la opción REMOTESOURCE se
establece en LOCAL (este es el valor predeterminado), la vía de acceso al archivo de la
tabla externa es relativa al directorio de inicio de
Servicios gestionados Db2.
De lo contrario, la vía de acceso al archivo de tabla externa es relativa a la vía de
acceso
/home/seguida por el ID de autorización del definidor de tabla. Por ejemplo, si el ID de autorización del definidor de la tabla esuser1, la vía de acceso al archivo de tabla externa es relativa a/home/user1/. - Para un producto local como
Db2 Warehouse, si la opción REMOTESOURCE
está establecida en LOCAL (el valor predeterminado) y el parámetro de configuración
extbl_strict_io está establecido en NO, la vía de acceso al archivo
de tabla externa es una vía absoluta y debe ser una de las vías de acceso especificadas
por el parámetro de configuración extbl_location. De lo contrario,
la vía de acceso al archivo de tabla externa es relativa a la vía de acceso especificada
por el parámetro de configuración extbl_location seguida por el ID
de autorización del definidor de tabla. Por ejemplo, si
extbl_location se ha establecido en
/home/xyzy el ID de autorización del definidor de tabla esuser1, la vía de acceso al archivo de tabla externa es relativa a/home/xyz/user1/.
El nombre de archivo debe ser una serie UTF-8 válida.
Para una operación de carga, se aplican las condiciones siguientes:- El archivo ya debe existir.
- Permisos necesarios:
- Si la tabla externa es una tabla externa con nombre, el propietario debe tener el permiso de escritura para el archivo y el permiso de escritura para el directorio LOGDIR.
- Si la tabla externa es una tabla externa transitoria, el ID de autorización de la sentencia debe tener el permiso de lectura para el archivo y el permiso de escritura para el directorio LOGDIR.
- Si el archivo existe, se sobrescribe.
- Permisos necesarios:
- Si la tabla externa es una tabla externa con nombre, el propietario debe tener permiso de lectura y escritura para el directorio de este archivo.
- Si la tabla externa es transitoria, el ID de autorización de la sentencia debe tener permiso de lectura y escritura para el directorio de este archivo.
- Para un servicio gestionado basado en la nube como
Db2 Warehouse on Cloud, si la opción REMOTESOURCE se
establece en LOCAL (este es el valor predeterminado), la vía de acceso al archivo de la
tabla externa es relativa al directorio de inicio de
Servicios gestionados Db2.
De lo contrario, la vía de acceso al archivo de tabla externa es relativa a la vía de
acceso
- DATEDELIM
- Carácter delimitador que separa los componentes de una fecha, según el formato especificado por la opción DATESTYLE. Si especifica una serie vacía, no hay ningún delimitador entre los componentes de fecha, y los días y los meses se deben especificar como números de dos dígitos. Cuando DATESTYLE está establecido en MONDY o MONDY2, el valor DATEDELIM predeterminado es un espacio. Las opciones TIMESTAMP_FORMAT y DATEDELIM se excluyen entre sí.
- DATESTYLE
- Cómo interpretar el formato de fecha. Para los días o meses dentro del rango de 1 ‑ 9, utilice 1 dígito, 2 dígitos o un espacio seguido por un solo dígito. Cuando la opción DATEDELIM es un espacio, puede especificar una coma detrás del día. Se produce un error si
- Especifica un cero para un día, mes o año
- Especifica una fecha no existente (por ejemplo, 32 de agosto o 30 de febrero)
Tabla 1. Valores posibles para la opción DateStyle . El ejemplo muestra cómo se representaría la fecha 21 de marzo de 2014 cuando DATEDELIM está establecido en '-'. Valor Descripción Ejemplo AMD Año de 4 dígitos, mes de 2 dígitos, día de 2 dígitos. Es el valor por omisión. 2014-03-21 DMA Día de 2 dígitos, mes de 2 dígitos, año de 4 dígitos. 21-03-2014 MDA Mes de 3 dígitos, día de 2 dígitos, año de 4 dígitos. 03-21-2014 MONDA Mes de 3 caracteres, día de 2 dígitos, año de 4 dígitos. Mar 21 2014 DMONA Día de 2 dígitos, mes de 3 caracteres, año de 4 dígitos. 21-Mar-2014 A2MD Año de 2 dígitos, mes de 2 dígitos, día de 2 dígitos. No está soportado para las descargas. 14-03-21 DMA2 Día de 2 dígitos, mes de 2 dígitos, año de 2 dígitos. No está soportado para las descargas. 21-03-14 MDA2 Mes de 2 dígitos, día de 2 dígitos, año de 2 dígitos. No está soportado para las descargas. 03-21-14 MONDA2 Mes de 3 caracteres, día de 2 dígitos, año de 2 dígitos. No está soportado para las descargas. Mar 21 14 DMONA2 Día de 2 dígitos, mes de 3 caracteres, año de 2 dígitos. No está soportado para las descargas. 21-Mar-14 - DATETIMEDELIM
- Un carácter de un solo byte que separa el componente de fecha y hora y el componente de hora del tipo de datos de indicación de fecha y hora.
- DATE_FORMAT
- Formato del campo de fecha en el archivo de datos. El valor puede adoptar cualquier serie de formato de fecha aceptado por Función escalar TIMESTAMP_FORMAT. El valor predeterminado es AAAA-MM-DD. La opción DATE_FORMAT y las opciones DATEDELIM o DATESTYLE se excluyen entre sí.
- DECIMALDELIM o DECIMAL_CHARACTER
- Delimitador decimal para los tipos de datos FLOAT, DOUBLE, TIME y TIMESTAMP. Los valores permitidos son
','y'.'. - DECPLUSBLANK
- Especifica cómo se representa el valor decimal positivo durante la operación de descarga.
- DELIMITER o COLUMN_DELIMITER
- Carácter que se utiliza para delimitar los campos de un registro de entrada o de
salida. El valor predeterminado es una barra vertical (
'|').Puede especificar un carácter en el rango ASCII de 7 bits (decimal 1 ‑ 127) en cualquiera de las formas siguientes:- Como un solo carácter (por ejemplo
DELIMITER ';') - Especificando su valor decimal ASCII correspondiente (por ejemplo,
DELIMITER 59oDELIMITER '59') - Especificando su valor hexadecimal ASCII correspondiente (por ejemplo,
DELIMITER x'3B')
El rango decimal 128 - 255 solo está soportado con el archivo de entrada del conjunto de caracteres ISO especificando su valor decimal o hexadecimal ASCII correspondiente. Si el archivo de entrada se encuentra en el conjunto de caracteres UTF8, este rango de valores de delimitador no está soportado.
- Como un solo carácter (por ejemplo
- ENCODING
- Tipo de datos en el archivo:
- UTF8
- El archivo utiliza la codificación UTF8 y solo contiene datos NCHAR o NVARCHAR.
- LATIN9
- El archivo utiliza la codificación LATIN9 y solo contiene datos CHAR o VARCHAR.
- INTERNAL
- El archivo utiliza una combinación de ambas codificaciones, UTF8 y LATIN9, o no está seguro del tipo de codificación que se utiliza. El sistema comprueba los datos y los codifica, según sea necesario. Puesto que esta comprobación de los datos reduce el rendimiento general, utilice este valor solo cuando sea necesario. Es el valor por omisión.
- DBCS_GRAPHIC
- Este valor sólo se permite para una operación de carga, no para una operación de
descarga. Si se especifica este valor, también se debe especificar la opción CCSID.
Durante la operación de carga, los campos de tipo GRAPHIC o VARGRAPHIC se codifican
utilizando el juego de caracteres de doble byte del CCSID especificado; los campos de
todos los demás tipos se codifican utilizando el juego de caracteres de bytes mixtos del
CCSID especificado.Nota: ENCODING no se puede establecer en DBCS_GRAPHIC para un archivo DEL creado por el programa de utilidad EXPORT porque dichos archivos DEL se han codificado utilizando un solo juego de caracteres.
- ESCAPECHAR o ESCAPE_CHARACTER
- Qué carácter se debe considerar como un carácter de escape. Un carácter de escape indica que el carácter que le sigue, que de otra forma se trataría como un carácter delimitador de campo o un carácter de secuencia de fin de fila, se trata como parte del valor del campo. El carácter de escape se ignora para los datos de serie gráfica. No hay ningún valor predeterminado.
- FILLRECORD
- Para una operación de carga. el campo de un registro se carga en las columnas de una tabla de destino de izquierda a derecha. Esta opción especifica si un registro de entrada puede contener menos campos que las columnas definidas para la tabla de destino:
- TRUE o ON
- Una línea de entrada puede contener menos campos, siempre que todas las columnas para las cuales falta un valor admitan nulos. Los valores perdidos se establecen en NULL. Si una o más columnas para las cuales falta un valor no admite nulos, el registro se rechaza.
- FALSE o OFF
- Una línea de entrada que contiene menos columnas se rechaza. Es el valor por omisión.
- FORMAT o FILE_FORMAT
- Formato de datos del archivo de origen:
- TEXT
- Los datos que se van a cargar o descargar están en formato de texto delimitado. Es el valor por omisión.
- INTERNAL
- Los datos se encuentran en un formato interno utilizado por Netezza Platform Software
(NPS). Este valor solo es válido cuando se cargan datos de un archivo a la base de datos,
no cuando se descargan datos en un archivo. Si se especifica este valor para la opción
FORMAT, también se deben especificar las opciones siguientes, y solo estas opciones:
- DATAOBJECT o FILE_NAME.
- REMOTESOURCE, SWIFT o S3. Si se especifica la opción REMOTESOURCE, debe tener el valor LOCAL o YES.
- COMPRESS. Esto se debe establecer en GZIP.
- FIXED
- Los datos están en formato de longitud fija.
- IGNOREZERO o TRIM_NULLS
- Especifica si el valor binario cero en los campos CHAR y los campos VARCHAR se debe
descartar.
- TRUE o ON
- El valor de byte cero se ignora.
- FALSE o OFF
- El valor de byte cero no se ignora. Es el valor por omisión.
- KEEP
- El valor binario cero se acepta y se permite como parte del campo de entrada.
- INCLUDEHEADER o COLUMN_NAMES
- Para una operación de descarga, indica si los nombres de columna de tabla se van a incluir como cabeceras en el archivo de tabla externa:
- TRUE o ON
- Los nombres de columna de tabla se van a incluir como cabeceras.
- FALSE o OFF
- Los nombres de columna de tabla no se van a incluir como cabeceras. Es el valor por omisión.
- INCLUDEZEROSECONDS
- Para una operación de descarga, indica si se va a especificar 00 como el valor para los segundos cuando no hay disponible ningún valor para segundos.
- TRUE o ON
- Especifique 00 como el valor para los segundos.
- FALSE o OFF
- No especifique un valor para los segundos. Es el valor por omisión.
- LOGDIR o ERROR_LOG
- Directorio en el cual se van a escribir los archivos siguientes:
- <base_datos>.<esquema>.<nombre-tabla-externa>.<nombre-archivo>.<manejo-aplicaciones>.<id>.bad
- Archivo que contiene registros rechazados (es decir, los registros que no se han podido procesar).
- <base_datos>.<esquema>.<nombre-tabla-externa>.<nombre-archivo>.<manejo-aplicaciones>.<id>.log
- Archivo de registro.
<nombre-archivo>) se trunca para que no se exceda el máximo.Si se genera un archivo .log o .bad al realizar una operación en una partición, se añade como sufijo al nombre del archivo generado un punto seguido por el número de partición de 3 dígitos.
- MAXERRORS o MAX_ERRORS
- Para una operación de carga, el umbral para el número de registros rechazados en el que el sistema detiene el proceso y retrotrae la carga inmediatamente. El valor predeterminado es 1 (es decir, un solo registro rechazado genera una retrotracción).
- MAXROWS o MAX_ROWS
- Si está establecido en un entero positivo, esto especifica el número máximo de registros (filas) en la tabla externa que se van a procesar. Si está establecido en 0 (el valor predeterminado), no hay ningún límite y se procesan todas las filas. Durante una operación de carga, si MAXROWS está establecido en un valor positivo, una vez que se haya procesado ese número de filas, independientemente de si se han rechazado u omitido algunas de las filas, el sistema finaliza la operación de carga y confirma todos los registros insertados.
- MERIDIANDELIM
- Un carácter de un solo byte que separa el componente de segundos de la señal AM o de la señal PM en los formatos delimitados o sin limitar de 12 horas de un valor de hora.
- NOLOG
- Especifica si se crea el archivo .log para la tabla externa.
- NULLVALUE o NULL_VALUE
- Serie UTF-8 de un máximo 4 bytes que se va a utilizar para indicar un valor nulo. El valor predeterminado es
'NULL'. - PARTITION
- Si tiene un despliegue de MPP, una tabla externa se puede particionar en varios archivos.
Al nombre de cada uno de los archivos de datos que engloban una tabla externa se le añade
un sufijo con un punto seguido por un número de 3 dígitos del 000 a 999 que indica el
número de la partición. Por ejemplo, si una tabla externa con el nombre dataFile.txt se divide en tres particiones, los archivos que contienen tienen los nombres dataFile.txt.000, dataFile.txt.001 y dataFile.txt.002. Se debe poder acceder a estos archivos desde todos los miembros. Para una tabla externa particionada, la opción PARTITION especifica a qué partición o particiones se aplica la sentencia:
- PARTITION ALL
- La sentencia se aplica a todas las particiones que componen la tabla externa. Para una operación de descarga, este es el único valor que está autorizado.
- PARTITION (n TO n)
- La sentencia se aplica a todas las particiones del rango especificado, por ejemplo, PARTITION (54 TO 62).
- PARTITION (n,n,…)
- La sentencia solo se aplica a la partición o particiones especificadas, por ejemplo, PARTITION (53) o PARTITION (51,57,58). Si se especifica más de un número de partición, éstos deben estar en orden ascendente (sqlcode SQL0263N con SQLSTATE=42615) y no puede haber duplicados (sqlcode SQL0265N con SQLSTATE=42615).
Si se genera un archivo .log o .bad al realizar una operación en una tabla externa particionada, se añade un sufijo al nombre del archivo generado con un punto seguido por el número de partición de 1 a 3 dígitos.
Si tiene un despliegue MPP y no se ha especificado la opción PARTITION, la tabla externa se trata como una tabla de una única partición en el miembro coordinador. A los nombres del archivo de tabla externa y de los archivos .log y .bad no se les añade un sufijo con un número de partición.
Si no tiene un despliegue MPP, la opción PARTITION se puede especificar, pero solo con el valor ALL, (0 a 0) o (0) (sqlcode SQL0644N con SQLSTATE=42615). No tendrá ningún efecto.
Las opciones REMOTESOURCE y PARTITION se excluyen entre sí.
- QUOTEDNULL
- Para una operación de carga, cómo interpretar un valor que está entrecomillado con comillas simples o comillas dobles y que coincide con el valor nulo especificado por la opción NULLVALUE o NULL_VALUE (por ejemplo, "NULL" o 'NULL'):
- TRUE o ON
- El valor se interpreta como un valor nulo. Es el valor por omisión.
- FALSE o OFF
- El valor se interpreta como una serie de caracteres.
- QUOTEDVALUE o STRING_DELIMITER
- Indica si los valores de datos se van a entrecomillar.
- SINGLE o YES
- Los valores de datos se entrecomillan con comillas simples (').
- DOUBLE
- Los valores de datos se entrecomillan con comillas dobles (").
- NO
- Los valores de datos no están entrecomillados. Es el valor por omisión.
- RECORDDELIM o RECORD_DELIMITER
- Literal de serie que se va a interpretar como delimitador de fila (registro). El valor predeterminado es
'\n'. Cuando CRINSTRING está establecido en TRUE, RECORDDELIM no puede contener un carácter de retorno de carro (CR). - REMOTESOURCE
- Lugar donde reside el archivo de tabla externa y, si reside en un sistema remoto, si
se van a comprimir los datos del archivo.
- LOCAL
- El archivo reside en el servidor local, es decir, el sistema que aloja la base de datos. Es el valor por omisión.
- YES
- El archivo reside en un sistema distinto al servidor local. Por ejemplo, especifique YES si un sistema cliente está conectado a la base de datos y el archivo reside en ese sistema. Los datos de archivo no están comprimidos antes de transferirse.
- GZIP
- Similar a YES, excepto que los datos de archivos se comprimen utilizando el algoritmo de compresión GZIP antes de que se transfieran los datos, y se descomprimen después de que se hayan recibido. Esto mejora el rendimiento general cuando se está transfiriendo una gran cantidad de datos comprimibles.
- LZ4
- Similar a YES, excepto que los datos de archivo se comprimen utilizando el algoritmo de compresión LZ4 antes de que se transfieran los datos, y se descomprimen después de que se hayan recibido. Esto mejora el rendimiento general cuando se está transfiriendo una gran cantidad de datos comprimibles.
Las opciones REMOTESOURCE, SWIFT y S3 se excluyen entre sí. Las opciones REMOTESOURCE y PARTITION se excluyen entre sí. La opción COMPRESS no se puede especificar si el valor de la opción REMOTESOURCE es GZIP o LZ4.
- REQUIREQUOTES
- Indica si las comillas son obligatorias:
- TRUE o ON
- Las comillas son obligatorias. La opción QUOTEDVALUE se debe establecer en YES, SINGLE o DOUBLE.
- FALSE o OFF
- Las comillas no son obligatorias. Es el valor por omisión.
- SKIPROWS o SKIP_ROWS
- Para una operación de carga, el número de filas que se omitirán antes de empezar a cargar los datos. El valor predeterminado es 0. Puesto que las filas omitidas se procesan antes de que se omitan, una fila omitida sigue siendo capaz de provocar un error de proceso.
- SOCKETBUFSIZE
- Tamaño, en bytes, de los fragmentos de datos que se leen del archivo de origen. El rango de valores válidos oscila de 64 KB ‑ 800 MB. Si especifica un valor fuera de este rango, el valor se establece en el valor válido más cercano. El valor predeterminado es 8 MB.
- STRICTNUMERIC
- Para una operación de carga, cómo tratar un valor que se va a insertar en un campo DECIMAL cuando su escala excede el definido por el campo:
- TRUE o ON
- La fila que contiene el valor que se va a insertar se rechaza. Por ejemplo, si alguno de los valores se iba a cargar en un campo DECIMAL(5,3), la fila que contiene ese valor se rechazaría:
12.666666666 -98.34496862785 0.00089 - FALSE o OFF
- Se acepta la fila que contiene el valor que se va a insertar y se trunca la parte de la fracción decimal que excede la escala definida para el campo. Es el valor por omisión. Por ejemplo, los valores del ejemplo anterior se convertirían a:
12.666 -98.344 0.000
- SWIFT
- Especifica que el archivo de datos de origen se encuentra en un almacén de objetos Swift. Las opciones REMOTESOURCE, SWIFT y S3 se excluyen entre sí. Utilice la opción DATAOBJECT para especificar el nombre de archivo. Sintaxis:
donde:SWIFT (punto final, claveaut1, claveaut2, grupo)- punto final
- Una serie de caracteres que especifica el URL del servicio web SWIFT.
- claveaut1
- Una serie de caracteres que especifica el ID de acceso o el nombre de usuario de la cuenta de pila abierta de Swift que se utiliza para validar el usuario.
- claveaut2
- Una serie de caracteres que especifica la contraseña de la cuenta de pila abierta Swift que se utiliza para validar el usuario.
- grupo
- El nombre del contenedor (grupo) de pilas abiertas Swift en el cual reside el archivo.
Ejemplo:CREATE EXTERNAL TABLE exttab1(a int) using (dataobject 'datafile1.dat' swift('https://dal05.objectstorage.softlayer.net/auth/v1.0/', 'XXXOS123456-2:xxx123456', 'b207c6e974020737d92174esdf6d5be9382aa4c335945a14eaa9172c70f8df16', 'my_dev' ) ) - S3
- Especifica que el archivo de datos de origen se encuentra en un almacén de objetos
compatible con S3. Las opciones REMOTESOURCE, SWIFT y S3 se excluyen entre sí. Utilice la opción DATAOBJECT para especificar el nombre de archivo. Sintaxis:donde:
S3 (punto finalendpoint, claveaut1, claveaut2, grupo)- punto final
- Serie de caracteres que especifica el URL del servicio web compatible con S3.
- claveaut1
- Serie de caracteres que especifica el ID de clave de acceso S3 de las claves de acceso utilizadas para validar el usuario y todas las acciones de usuario. Para IBM Cloud Object Storage, es el ID de clave de acceso de las credenciales HMAC.
- claveaut2
- Serie de caracteres que especifica la clave secreta S3 de las claves de acceso que se utilizan para validar el usuario y todas las acciones de usuario. Para IBM Cloud Object Storage, es la clave de acceso secreta de las credenciales HMAC.
- grupo
- Nombre del grupo S3 en el que reside el archivo.
Nota: En IBM Cloud Object Storage, para crear las credenciales HMAC, al crear las nuevas credenciales de servicio, especifique{"HMAC:true}en el campo Add Inline Configuration Parameters (Añadir parámetros de configuración en línea).Ejemplo en el que se utiliza AWS S3:CREATE EXTERNAL TABLE exttab2(a int) using (dataobject 'datafile2.dat' s3('s3.amazonaws.com', 'XXXOS123456-2:xxx123456', 'bs07c6e974040737d92174e5e96d5be9382aa4c33xxx5a14eaa9172c70f8df16', 'my_dev' ) )Ejemplo en el que se utiliza IBM Cloud Object Storage:CREATE EXTERNAL TABLE exttab2(a int) using (dataobject 'datafile2.dat' s3('s3-api.us-geo.objectstorage.softlayer.net', '1a2bkXXXsaddntLo0xX0', 'XXxxiEPjJ7T7WBUz74E6abcdABCDE8Q7RgU4gYY9', 'my_dev' ) ) - TIMEDELIM
- Carácter de un solo byte que va a separar los componentes de tiempo (horas, minutos y
segundos). El valor predeterminado es
':'. Si TIMEDELIM está establecido en una serie vacía, las horas, minutos y segundos se deben especificar como números de dos dígitos. Las opciones TIMESTAMP_FORMAT y TIMEDELIM se excluyen entre sí. - TIMEROUNDNANOS o TIMEEXTRAZEROS
-
Nota: Esta opción solo se aplica a las columnas TIMESTAMP.
- TIMESTYLE
- El formato de hora que se va a utilizar en el archivo de datos:
- 24HOUR
- Formato de 24 horas, por ejemplo, 23:55. Es el valor por omisión.
- 12HOUR
- Formato de 12 horas, por ejemplo, 11:55 PM. Una señal AM o PM puede ir precedida por una solo espacio y no distingue entre mayúsculas y minúsculas.
- TIMESTAMP_FORMAT
- Formato del campo de indicación de fecha y hora en el archivo de datos. El valor puede adoptar cualquier serie de forma aceptado por Función escalar TIMESTAMP_FORMAT. El valor predeterminado es 'AAAA-MM-DD HH.MI.SS'. La opción TIMESTAMP_FORMAT y la opción TIMEDELIM, DATEDELIM, TIMESTYLE, o DATESTYLE se excluyen entre sí.
- TIME_FORMAT
- Formato del campo de hora en el archivo de datos. El valor puede adoptar cualquier serie de formato de hora aceptado por Función escalar TIMESTAMP_FORMAT. El valor predeterminado es HH.MI.SS. La opción TIME_FORMAT y la opción TIMEDELIM o TIMESTYLE se excluyen entre sí.
- TRIMBLANKS
- Cómo una tabla externa debe tratar los espacios en blanco iniciales o finales (es
decir, los caracteres de espacio iniciales o finales) en una serie:
- LEADING
- Se eliminan todos los espacios en blanco iniciales (es decir, los espacios en blanco que preceden el primer carácter no en blanco).
- TRAILING
- Se eliminan todos los espacios en blanco al final (es decir, los espacios en blanco que siguen al último carácter no en blanco).
- BOTH
- Se eliminan todos los espacios en blanco al principio y al final.
- NONE
- No se elimina ningún espacio en blanco. Es el valor por omisión.
- TRUNCSTRING o TRUNCATE_STRING
- Cómo procesa el sistema una serie CHAR o VARCHAR que excede su tamaño de almacenamiento declarado:
- TRUE
- El sistema trunca un valor de serie que excede su tamaño de almacenamiento declarado.
- FALSE
- El sistema devuelve un error cuando un valor de serie excede su tamaño de almacenamiento declarado. Es el valor por omisión.
- Y2BASE
- El año que es el inicio del rango de 100 años. Los años que se especifican como 2 dígitos se cuentan a partir de este año. El valor predeterminado es 2000. Esta opción se debe especificar cuando DATESTYLE está establecido en Y2MD, MDY2, DMY2, MONDY2 o DMONY2.
Tabla 3. Opciones Opción Valor por omisión Se aplica a la carga Se aplica a la descarga BOOLSTYLE o BOOLEAN_STYLE 1_0 S S CARDINALITY (no hay valor predeterminado) S S CCSID (no hay valor predeterminado) S S COMPRESS NO N S CRINSTRING FALSE S S CTRLCHARS FALSE S N DATAOBJECT o FILE_NAME (no hay valor predeterminado) S S DATEDELIM '-' S S DATESTYLE AMD S S DATE_FORMAT AAAA-MM-DD S S DECIMALDELIM o DECIMAL_CHARACTER '.' S S DELIMITER '|' S S ENCODING INTERNAL S S1 ESCAPECHAR o ESCAPE_CHARACTER (no hay valor predeterminado) S S FILLRECORD FALSE S N FORMAT o FILE_FORMAT TEXT S S IGNOREZERO o TRIM_NULLS FALSE S N INCLUDEHEADER o COLUMN_NAMES FALSE S S INCLUDEZEROSECONDS FALSE S S LOGDIR o ERROR_LOG directorio de destino del archivo de tabla externa S N MAXERRORS o MAX_ERRORS 1 S N MAXROWS o MAX_ROWS 0 S N NULLVALUE o NULL_VALUE 'NULL' S S PARTITION (no hay valor predeterminado) S S QUOTEDNULL TRUE S N QUOTEDVALUE NO S N RECORDDELIM o RECORD_DELIMITER '\n' S N REMOTESOURCE LOCAL S S REQUIREQUOTES FALSE S N SKIPROWS o SKIP_ROWS 0 S N SOCKETBUFSIZE 8 MB S S STRICTNUMERIC FALSE S N SWIFT (no hay valor predeterminado) S S S3 (no hay valor predeterminado) S S TIMEDELIM ':' S S TIMEROUNDNANOS o TIMEEXTRAZEROS FALSE S N TIMESTAMP_FORMAT 'AAAA-MM-DD HH.MI.SS' S S TIMESTYLE 24HOUR S S TIME_FORMAT HH.MI.SS S S TRIMBLANKS NONE S S TRUNCSTRING o TRUNCATE_STRING FALSE S N Y2BASE 2000 S N 1 Solo para los valores INTERNAL, UTF8 y LATIN9. - AS SELECT STATEMENT
- Especifica que, para cada columna de la tabla de resultados derivada de la selección completa, se va a definir una columna correspondiente para la tabla y se va a llenar con los resultados de la consulta. Cada columna definida adopta los
siguientes atributos de su columna correspondiente de la tabla de
resultados (si se aplica al tipo de datos):
- Nombre de columna
- Descripción de la columna
- Tipo de datos, longitud, precisión y escala
- Capacidad de nulos
Notas
- Los registros que no se pueden procesar (si hay alguno) se escriben en un archivo con un nombre con el formato:
Los errores se registran en un archivo con un nombre con el formato:<base_datos>.<esquema>.<nombre-tabla-externa>.<nombre-archivo>.<manejo-aplicaciones>.<id>.bad
Estos archivos se encuentran en el directorio especificado por la opción LOGDIR o ERROR_LOG.<base_datos>.<esquema>.<nombre-tabla-externa>.<nombre-archivo>.<manejo-aplicaciones>.<id>.logPara una operación en una partición, al nombre del archivo .bad o .log generado se le añade un sufijo con un punto seguido por el número de partición de 3 dígitos.
- Para crear, insertar o descartar una tabla externa con nombre, emita una sentencia CREATE, INSERT o DROP. No puede insertar o descartar una tabla externa transitoria.
- Descartar una tabla externa suprime la definición de tabla pero no suprime el archivo de datos que está asociado a la tabla.
Restricciones
- Los datos que se están cargando se deben formatear correctamente.
- No puede suprimir, truncar o actualizar una tabla externa.
- Para las tablas externas remotas (es decir, para las tablas externas que no están situadas en un almacén de objetos
Swift o S3 y para las cuales la opción REMOTESOURCE está establecida en un valor distinto a LOCAL):
- No se puede seleccionar una consulta única ni una subconsulta de más de una tabla externa a la vez, y no se puede hacer referencia a la misma tabla externa más de una vez. Si fuera necesario, combine datos de varias tablas externas en una sola tabla y utilice esa tabla en la consulta.
- Una operación de unión no puede implicar más de una tabla externa.
Alternativas de sintaxis
- SAMEAS se puede utilizar en lugar de LIKE.
- Para la opción REMOTESOURCE, los valores ODBC, JDBC o OLE-DB se pueden especificar en lugar de YES.
- Si la opción FORMAT se ha establecido en INTERNAL, el valor YES se puede especificar en lugar de GZIP para la opción COMPRESS.
Ejemplos
- Descargue datos en una tabla externa:
CREATE EXTERNAL TABLE 'order.tbl' USING (DELIMITER '|') AS SELECT * from orders;CREATE EXTERNAL TABLE 'export.csv' USING (DELIMITER ',') AS SELECT foo.x, bar.y, bar.dt FROM foo, bar WHERE foo.x = bar.x; - Cargue datos desde una tabla externa:
INSERT INTO target SELECT * FROM EXTERNAL 'data.txt' USING (DELIMITER '|');INSERT INTO orders SELECT * FROM EXTERNAL 'order.tbl'( order_num INT, order_dt TIMESTAMP) USING (DELIMITER '|'); - Seleccione datos en una tabla externa:
SELECT * FROM EXTERNAL 'order.tbl' (order_num INT, order_dt TIMESTAMP) USING (DELIMITER '|');SELECT * FROM EXTERNAL 'test.txt' LIKE test_table USING (DELIMITER ',');SELECT x, y AS dt FROM EXTERNAL 'test.txt' ( x integer, y decimal(18,4) ) USING (DELIMITER ',');
