DBMS_CLOUD Opciones de formato del paquete

El argumento de formato de DBMS_CLOUD especifica el formato de los archivos de origen.

Las dos formas de especificar el argumento de formato son:

format => '{"format_option" : “format_value” }'  

Y:

format => json_object('format_option' value 'format_value'))

Ejemplos:

format => json_object('type' VALUE 'CSV')

Para especificar varias opciones de formato, separe los valores con una ",".

Por ejemplo:

format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 
                           'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true', 'logretention' value 7)
Nota

Para las opciones de formato Avro, ORC o Parquet, consulte DBMS_CLOUD Opciones de formato de paquete para Avro, ORC o Parquet.

Como se indica en la columna Opciones de formato, un juego limitado de opciones de formato son válidas con DBMS_CLOUD.COPY_COLLECTION o con DBMS_CLOUD.COPY_DATA cuando el valor de format type sea JSON.

Opción de Formato Descripción Sintaxis

access_protocol

Especifica el tipo de tabla de Apache Iceberg, como AWS u OCI Object Storage, y qué información se utiliza para crear la tabla externa, por ejemplo, información de un catálogo de datos o de un URI de metadatos directos.

Consulte Procedimiento CREATE_EXTERNAL_TABLE para Apache Iceberg para obtener más información sobre la sintaxis access_protocol.

blankasnull

Si se define en true, carga los campos formados por espacios como nulos.

blankasnull : true

Valor por defecto: False

characterset

Válido con format JSON y COPY_DATA

Especifica el juego de caracteres de los archivos de origen

characterset: cadena

Valor por defecto: juego de caracteres de la base de datos

columnpath

Solo se utiliza con format JSON y COPY_DATA

Conjunto de expresiones de ruta de JSON que se corresponden con los campos que se deben extraer de los registros JSON. Cada una de las expresiones de ruta de JSON de la matriz debe seguir las reglas descritas en Expresiones de ruta de JSON/SQL.

Solo se utiliza con formato JSON y DBMS_CLOUD.COPY_DATA.

Matriz JSON de expresiones de ruta json expresadas en formato de cadena. Por ejemplo: 'columnpath' valor '["$.WEATHER_STATION_ID", "$.WEATHER_STATION_NAME"]'

compression

Opción válida con datos de JSON

Especifica el tipo de compresión del archivo de origen.

El formato de archivado ZIP no está soportado.

Al especificar el valor auto, se comprueban los tipos de compresión: gzip, zlib, bzip2.

compression: auto|gzip|zlib|bzip2

Valor por defecto: valor nulo, que significa que no tiene compresión.

conversionerrors

Si una fila se rechaza por errores de conversión de tipo de datos, las columnas relacionadas se almacenarán como nulas o bien la fila se rechazará.

conversionerrors : reject_record | store_null

Valor por defecto: reject_record

dateformat

Especifica el formato de fecha en el archivo de origen. La opción de formato AUTO busca los siguientes formatos:

J 
MM-DD-YYYYBC 
MM-DD-YYYY 
YYYYMMDD HHMISS 
YYMMDD HHMISS 
YYYY.DDD 
YYYY-MM-DD

dateformat: cadena

Valor por defecto: formato de base de datos

delimiter

Especifica el delimitador de campo.

Para utilizar un carácter especial como delimitador, especifique el valor HEX del código ASCII del carácter. Por ejemplo, con lo siguiente se especifica el carácter de tabulador como delimitador:

format => json_object('delimiter' value 'X''9''')

delimiter: carácter

Valor por defecto | (c carácter de pleca)

detectfieldorder

Especifica que los campos de los archivos de datos externos están en un orden diferente al de las columnas de la tabla. Detecte el orden de los campos mediante la primera fila de cada archivo de datos externo y asígnelo a las columnas de la tabla. Los nombres de campo de los archivos de datos externos se comparan de forma no sensible a mayúsculas/minúsculas con los nombres de las columnas de la tabla.

Esta opción de formato se aplica a los siguientes procedimientos:

  • DBMS_CLOUD.COPY_DATA

  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE

  • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

Restricciones para detectfieldorder:

  • Los nombres de campo del archivo de datos deben aparecer en la primera línea de registro y no deben contener espacios en blanco entre los nombres de campo.

  • El delimitador de campo en el registro de nombres de campo debe ser el mismo que el delimitador de campo para los datos del archivo.

  • No se admiten los nombres de campo entre comillas. Los nombres de campo de los archivos de datos se comparan, sin distinción entre mayúsculas y minúsculas, con los nombres de las columnas de la tabla externa.

  • No se permiten delimitadores de campo incrustados en los nombres de campo.

  • El número de columnas de la tabla debe coincidir con el número de campos de los archivos de datos.

  • Esta opción de formato no se aplica a formatos de Bigdata u Oracle Data Pump, ya que esos formatos tienen información precisa de metadatos de columna en formato de archivo binario.

    Los formatos de texto, CSV, JSON, Parquet o XML pueden beneficiarse de esta detección automática de orden de campos cuando la primera línea contiene los nombres de campo.

Consulte FIELD NAMES y la descripción de ALL FILES para obtener más información.

detectfieldorder: true

Valor por defecto: false

enablelogs

La opción de formato enablelogs se utiliza con los siguientes procedimientos DBMS_CLOUD:

  • COPY_DATA

  • COPY_COLLECTION

  • EXPORT_DATA

enablelogs especifica un valor booleano, cuando se define en TRUE, se generan logs. Si se define en FALSE, no se generan logs.

Por ejemplo:

format => JSON_OBJECT('enablelogs' value FALSE)

enablelogs: false

Valor por defecto: true

encryption

La opción de formato encryption especifica las opciones de cifrado y descifrado para exportar e importar datos desde y hacia el almacén de objetos.

Utilice encryption para especificar los siguientes parámetros para cifrar y descifrar:

  • user_defined_function: especifica una función definida por el usuario totalmente cualificada para descifrar o cifrar el BLOB especificado (objeto grande binario). Devuelve un BLOB descifrado o cifrado. user_defined_function se excluye mutuamente con otros parámetros para encryption.

    Por ejemplo, ADMIN.DECRYPTION_CALLBACK.

  • type: especifica el algoritmo de cifrado DBMS_CRYPTO para descifrar o cifrar.

    type acepta valores en el formato Algoritmos de cifrado de bloque + Modificadores de encadenamiento de cifrado de bloque + Modificadores de relleno de cifrado de bloque.

    Los algoritmos de cifrado de bloques soportados son:

    • DBMS_CRYPTO.ENCRYPT_AES256

    Los modificadores de encadenamiento de cifrado de bloques soportados son:

    • DBMS_CRYPTO.CHAIN_CBC

    • DBMS_CRYPTO.CHAIN_CFB

    • DBMS_CRYPTO.CHAIN_ECB

    • DBMS_CRYPTO.CHAIN_OFB

    Los modificadores de relleno de cifrado de bloques soportados son:

    • DBMS_CRYPTO.PAD_PKCS5

    • DBMS_CRYPTO.PAD_NONE

    • DBMS_CRYPTO.PAD_ZERO

    • DBMS_CRYPTO.PAD_ORCL

  • credential_name: especifica la credencial utilizada para almacenar la clave de cifrado.

Los valores por defecto de los modificadores de encadenamiento de cifrado de bloques y de los modificadores de relleno de cifrado de bloques son DBMS_CRYPTO.CHAIN_CBC y DBMS_CRYPTO.PAD_PKCS5, si no especifica valores para estos parámetros.

La opción de formato encryption se utiliza con los siguientes procedimientos DBMS_CLOUD:
  • Se utiliza para transferir parámetros para descifrar estos procedimientos:

    • DBMS_CLOUD.COPY_DATA

    • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

    • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE

    • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

      Para DBMS_CLOUD.CREATE_HYBRID_PART_TABLE, esta opción solo se aplica a los archivos de Object Storage.

    • DBMS_CLOUD.COPY_COLLECTION

  • Se utiliza para transferir parámetros para cifrar para este procedimiento:

    • DBMS_CLOUD.EXPORT_DATA

Por ejemplo:

format => JSON_OBJECT('encryption' value json_object ('type' value DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5, 'credential_name' value 'ENCRYPTION_CRED'))
encryption:value

Donde value es una cadena JSON que proporciona parámetros adicionales para el cifrado:

type: valor

Especifica el tipo de cifrado.

credential_name: value

Especifica la credencial utilizada para almacenar la clave de cifrado.

user_defined_function: value

Especifica una función definida por el usuario totalmente cualificada para descifrar o cifrar el BLOB especificado (objeto grande binario).

endquote

Los datos se pueden incluir entre dos separadores, que se especifican con quote y endquote. Los caracteres quote y endquote se eliminan durante la carga cuando se especifican.

Por ejemplo:

format => JSON_OBJECT(‘quote’ value ‘(’, ‘endquote’ value ‘)’)

endquote:character

Valor por defecto: nulo, que significa que no es endquote.

escape

El carácter "\" se utiliza como carácter de escape cuando se especifica.

escape : true

Valor por defecto: false

ignoreblanklines

Opción válida con datos de JSON

Las líneas en blanco se ignoran cuando están definidas en true.

ignoreblanklines : true

Valor por defecto: False

ignoremissingcolumns

Si hay más columnas en field_list que en los archivos de origen, las columnas adicionales se almacenan como nulas.

ignoremissingcolumns : true

Valor por defecto False

jsonpath

Utilice solo con COPY_COLLECTION

Ruta de JSON para identificar el documento que se debe cargar.

Esta opción solo es válida para datos de recopilación de JSON con DBMS_CLOUD.COPY_COLLECTION.

jsonpath: string

Valor por defecto: Nulo

keyassignment

Utilice solo con COPY_COLLECTION

Especifica si una nueva recopilación se crea como una recopilación compatible con mongo o como una recopilación de SODA.

Cuando el valor se define en embedded_oid, se crea una nueva recopilación como una recopilación compatible con mongo.

Por defecto, este parámetro no está definido, lo que significa que se crea una nueva recopilación como recopilación de SODA.

keyassignment: embedded_oid

Por defecto: keyassignment no está definido

keypath

Utilice solo con COPY_COLLECTION

Especifica un atributo en los datos que se van a cargar como valor '_id'.

Si se especifica keypath, también debe especificar el valor keyassignment como embedded_oid.

Defina el valor en una ruta, por ejemplo, '$.mykey', para seleccionar el valor de la ruta como valor '_id'.

Este parámetro es opcional y solo es válido para cargar en recopilaciones compatibles con mongo.

Si no se especifica, Oracle genera un ID de sistema único de 12 bytes y lo rellena como atributo '_id' si un atributo '_id' no está ya presente en los datos que se están cargando.

keypath: string

Por defecto: keypath no está definido.

Cuando se establece keypath, el valor predeterminado de string es NULL.

language

Especifica un nombre de idioma (por ejemplo, FRENCH), a partir del cual se puede derivar información confidencial de la configuración regional.

language: cadena

Valor por defecto: Nulo

Consulte la sección sobre datos de configuración regional en Oracle Database Globalization Support Guide para obtener una lista de los idiomas soportados por Oracle.

logdir

Especifica un valor de cadena que determina el nombre del objeto de directorio donde se guardan los archivos logfile_table o badfile_table.

Por defecto, logdir no distingue entre mayúsculas y minúsculas, pero el uso de mayúsculas y minúsculas se reserva cuando el valor especificado está entre comillas dobles.

Por ejemplo:

format => JSON_OBJECT ('logdir' value 'test_log')

La opción de formato logdir especificada en el ejemplo anterior guarda los archivos logfile_table o badfile_table en el objeto de directorio TEST_LOG.

format => JSON_OBJECT ('logdir' value '"test_log"')

La opción de formato logdir especificada en el ejemplo anterior guarda los archivos logfile_table o badfile_table en el objeto de directorio test_log.

logdir: cadena

Valor por defecto: DATA_PUMP_DIR

logprefix

Especifica un valor de cadena que determina el prefijo para los archivos logfile_table y badfile_table.

El formato de nombre de tabla de log es: prefijo de log$operation_id

Por defecto, el prefijo de log está en mayúsculas, pero el caso se reserva cuando el valor especificado está entre comillas dobles.

Por ejemplo:

format => JSON_OBJECT ('logprefix' value 'TEST')

A continuación, los archivos log utilizan el prefijo TEST, como: TEST$2_LOG y TEST$2_BAD.

logprefix: cadena

Valor por defecto: COPY}

logretention

Especifica una duración de entero positiva, en días, para la que se conservan los archivos logfile_table y badfile_table.

Valores válidos: de 0 a 99999

Por ejemplo:

format => JSON_OBJECT ('logretention' value 7)

logretention: número

Valor por defecto: 2

maxdocsize

Esta opción solo es válida con datos de JSON

Tamaño máximo de documentos de JSON.

maxdocsize: número

Valor por defecto: 1 MB

Valor máximo permitido: 2 GB

numericcharacters

Especifica los caracteres que se van a utilizar como separador de grupo y carácter decimal.

decimal_character: el decimal separa la parte entera de un número de la parte decimal.

group_separator: el separador de grupo separa grupos de enteros (es decir, miles, millones, miles de millones, etc.).

numericcharacters: 'decimal_character group_separator'

Valor por defecto: ".,"

Consulte NLS_NUMERIC_CHARACTERS en Oracle Database Globalization Support Guide para obtener más información.

numberformat

Especifica el modelo de formato de número. Los modelos de formato de número hacen que el número se redondee al número especificado de dígitos significativos. Un modelo de formato de número está compuesto por uno o más elementos de formato de número.

Se utiliza en combinación con numericcharacters.

numberformat: number_format_model

Valor por defecto: se deriva de la configuración del parámetro NLS_TERRITORY

Consulte la sección sobre modelos de formato de número en Referencia de lenguaje SQL para obtener más información.

partition_columns

La opción de formato partition_columns se utiliza con DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE para especificar los tipos de datos de las columnas de partición cuando las columnas de partición se derivan de la ruta de archivo, según el tipo de archivo de datos, estructurado o no estructurado:

  • Cuando DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE incluye el parámetro column_list y los archivos de datos no están estructurados, como los archivos de texto CSV, partition_columns no incluye el tipo de datos. Por ejemplo, utilice un formato como el siguiente para este tipo de especificación partition_columns:

    '"partition_columns":["state","zipcode"]'

    El tipo de datos no es necesario porque se especifica en el parámetro DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE column_list.

  • Cuando DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE no incluye el parámetro column_list y los archivos de datos están estructurados, como archivos Avro, ORC o Parquet, la opción partition_columns incluye el tipo de datos. Por ejemplo, a continuación se muestra una especificación partition_columns:

    '"partition_columns":[
                   {"name":"country", "type":"varchar2(10)"},
                   {"name":"year", "type":"number"},
                   {"name":"month", "type":"varchar2(10)"}]'

Si los archivos de datos no están estructurados y la subcláusula type se especifica con partition_columns, se ignora la subcláusula type.

Para los nombres de objeto que no se basan en el formato de subdivisión, el orden de las columnas especificadas partition_columns debe coincidir con el orden en el que aparecen en el nombre de objeto en file_uri_list.

 

quote

Especifica el carácter de comillas para los campos. Los caracteres quote se eliminan durante la carga cuando se especifica.

quote: carácter

Valor por defecto: nulo, significa que no hay comillas

recorddelimiter

Opción válida con datos de JSON

Especifica el delimitador de registro.

Por defecto, DBMS_CLOUD intenta buscar automáticamente el carácter de nueva línea correcto como delimitador. Primero busca el carácter de línea nueva "\r\n" de Windows en el archivo. Si encuentra el carácter de línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. Si no se encuentra un carácter de línea nueva de Windows, busca el carácter de línea nueva de UNIX/Linux "\n" y si encuentra uno utiliza "\n" como delimitador de registro para todos los archivos del procedimiento.

Especifique este argumento explícitamente si desea sustituir el comportamiento por defecto, por ejemplo:

format => json_object('recorddelimiter' VALUE '''\r\n''')

Para indicar que no hay ningún delimitador de registro, puede especificar un valor recorddelimiter que no se produzca en el archivo de entrada. Por ejemplo, para indicar que no hay ningún separador, especifique el carácter de control 0x01 (SOH) como valor para recorddelimiter y defina el valor recorddelimiter en "0x''01''" (este carácter no se da en texto JSON). Por ejemplo:

format => '{"recorddelimiter" : "0x''01''"}'

El valor recorddelimiter se define una vez por llamada de procedimiento. Si utiliza el valor por defecto, detected newline, todos los archivos utilizan el mismo delimitador de registro, si se detecta uno.

recorddelimiter: carácter

Valor por defecto: detected newline

regexuri

La opción de formato regexuri se utiliza con los siguientes procedimientos DBMS_CLOUD:

  • COPY_COLLECTION

  • COPY_DATA

  • CREATE_EXTERNAL_TABLE

  • CREATE_EXTERNAL_PART_TABLE

  • CREATE_HYBRID_PART_TABLE

Cuando el valor de regexuri se define en TRUE, puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de Cloud.

Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro regexuri se define en FALSE. Cuando el parámetro regexuri se define en TRUE, los caracteres "*" y "?" forman parte del patrón de expresión regular especificado.

Los patrones de expresión regular sólo están soportados para el nombre de archivo o la ruta de subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE. Los patrones de expresión regular no están soportados para los nombres de directorio.

Para tablas externas, esta opción solo está soportada con las tablas que se crean en un archivo de Object Storage.

Por ejemplo:

format => JSON_OBJECT('regexuri' value TRUE)

Consulte Condición REGEXP_LIKE para obtener más información sobre la condición REGEXP_LIKE.

regexuri: True

Valor por defecto: False

rejectlimit

Esta operación dará error después de que se haya rechazado un número especificado de filas.

rejectlimit: número

Valor por defecto: 0

removequotes

Elimina todas las comillas que se encuentren en cualquier campo del archivo de origen.

removequotes: true

Valor por defecto: False

skipheaders

Especifica cuántas filas se deberían omitir desde el principio del archivo.

skipheaders: número

Valor por defecto: 0 si no se ha especificado; 1 si se ha especificado sin un valor

territory

Especifica un nombre de territorio para determinar aún más las características de los datos de entrada.

territory: cadena

Valor por defecto: Nulo

Consulte la sección sobre datos de configuración regional en Oracle Database Globalization Support Guide para obtener una lista de los territorios soportados por Oracle.

timestampformat

Especifica el formato de registro de hora en el archivo de origen. La opción de formato AUTO busca los siguientes formatos:

YYYY-MM-DD HH:MI:SS.FF 
YYYY-MM-DD HH:MI:SS.FF3
YYYY-MM-DD HH24:MI:SS.FF3
MM/DD/YYYY HH:MI:SS.FF3

timestampformat: cadena

Valor por defecto: formato de registro de hora de la base de datos

La cadena puede contener comodines como "$".

timestampltzformat

Especifica el registro de hora con formato de zona horaria local en el archivo de origen. La opción de formato AUTO busca los siguientes formatos:

DD Mon YYYY HH:MI:SS.FF TZR 
MM/DD/YYYY HH:MI:SS.FF TZR 
YYYY-MM-DD HH:MI:SS+/-TZR 
YYYY-MM-DD HH:MI:SS.FF3 
DD.MM.YYYY HH:MI:SS TZR

timestampltzformat: cadena

Valor por defecto: registro de hora de la base de datos con formato de zona horaria local

timestamptzformat

Especifica el registro de hora con formato de zona horaria en el archivo de origen. La opción de formato AUTO busca los siguientes formatos:

DD Mon YYYY HH:MI:SS.FF TZR 
MM/DD/YYYY HH:MI:SS.FF TZR 
YYYY-MM-DD HH:MI:SS+/-TZR 
YYYY-MM-DD HH:MI:SS.FF3 
DD.MM.YYYY HH:MI:SS TZR

timestamptzformat: cadena

Valor por defecto: registro de hora de la base de datos con formato de zona horaria

trimspaces

Especifica cómo se recortan los espacios iniciales y finales de los campos.

Consulte la descripción de trim_spec.

trimspaces: rtrim| ltrim| notrim| lrtrim| ldrtrim

Valor por defecto: notrim

truncatecol

Si los datos del archivo son demasiado largos para un campo, esta opción truncará el valor del campo en lugar de rechazar la fila.

truncatecol:true

Valor por defecto: False

type

Especifica el tipo de archivo de origen.

Consulte la descripción de CSV en la cláusula field_definitions

Si el valor de type es datapump, la única otra opción de formato válida es rejectlimit.

Si el valor de type es datapump, los únicos almacenes de objetos soportados son Oracle Cloud Infrastructure Object Storage y Oracle Cloud Infrastructure Object Storage Classic.

Consulte DBMS_CLOUD Package Format Options para Avro, ORC o Parquet para ver los valores de type avro, orc o parquet.

Para los datos JSON con DBMS_CLOUD.COPY_COLLECTION type tiene dos valores válidos: json (por defecto) y ejson. Para DBMS_CLOUD.COPY_COLLECTION, ambos valores especifican que la entrada son datos de JSON. El valor ejson hace que los objetos ampliados de los datos de entrada JSON textuales se conviertan en valores JSON escalares en la recopilación JSON binaria nativa. El valor json no realiza esta transformación y todos los objetos de los datos de entrada se convierten en el formato JSON binario.

Para los datos JSON con DBMS_CLOUD.COPY_DATA, type tiene un valor válido: json. Este valor especifica que la entrada son datos de JSON.

type: csv|csv with embedded|csv without embedded |avro||datapump|orc|parquet

Nota

No todos los procedimientos DBMS_CLOUD soportan todos estos tipos.

csv es lo mismo que csv without embedded.

Valor por defecto: Nulo

Para los datos JSON hay dos valores de type válidos para su uso con DBMS_CLOUD.COPY_COLLECTION: json|ejson. En este caso, el valor por defecto es json. Para datos JSON con DBMS_CLOUD.COPY_DATA, solo json es válido.

unpackarrays

Utilice solo con COPY_COLLECTION

Si se define en true, si un documento cargado es una matriz, el contenido de la matriz se carga como documentos en lugar de la propia matriz. Esto solo se aplica a la matriz de nivel superior.

Cuando se define en true, toda la matriz se inserta como un único documento.

Esta opción solo es válida para datos de recopilación de JSON con DBMS_CLOUD.COPY_COLLECTION.

unpackarrays: true

Valor por defecto: False