DBMS_CLOUD para objetos y archivos

En esta sección, se tratan los subprogramas DBMS_CLOUD que se utilizan para trabajar con objetos y archivos.

Requisitos

Como desarrollador, puede utilizar procedimientos DBMS_CLOUD con instancias de Autonomous Database desplegadas en Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.

En función de la opción de despliegue, se deben cumplir los siguientes requisitos para utilizar los procedimientos DBMS_CLOUD con los proveedores de servicios Amazon S3, Azure Blob Storage y Google Cloud Storage.

El administrador del conjunto debe haber configurado una conectividad saliente mediante un gateway de NAT, como se describe a continuación:
  • Cree un gateway de NAT en la red virtual en la nube (VCN) en la que residan los recursos de Autonomous Database siguiendo las instrucciones de Creación de un gateway de NAT de la Documentación de Oracle Cloud Infrastructure.
  • Después de crear el gateway de NAT, agregue una regla de ruta y una regla de seguridad de salida a cada subred (en la VCN) en la que residan los recursos de Autonomous Database para que estos recursos puedan utilizar el gateway para obtener una clave pública de la instancia de Azure AD:
    1. Vaya a la página Detalles de subred de la subred.
    2. En el separador Información de Subred, haga clic en el nombre de la Tabla de Direcciones de la subred para mostrar su página Detalles de Tabla de Direcciones.
    3. En la tabla de Reglas de ruta existentes, compruebe si ya hay una regla con las siguientes características:
      • Destino: 0.0.0.0/0
      • Tipo de destino: gateway de NAT
      • Destino: nombre del gateway de NAT que acaba de crear en la VCN

      Si dicha regla no existe, haga clic en Agregar reglas de ruta y agregue una regla de ruta con estas características.

    4. Vuelva a la página Detalles de subred de la subred.
    5. En la tabla Listas de seguridad de la subred, haga clic en el nombre de la lista de seguridad de la subred para mostrar su página Detalles de lista de seguridad.
    6. En el menú lateral, en Recursos, haga clic en Reglas de salida.
    7. En la tabla de Reglas de salida existentes, compruebe si ya hay una regla con las siguientes características:
      • Tipo de destino: CIDR
      • Destino: 0.0.0.0/0
      • Protocolo IP: TCP
      • Rango de puertos de origen: 443
      • Rango de puertos de destino: todos

      Si dicha regla no existe, haga clic en Agregar Reglas de Salida y agregue una regla de salida con estas características.

La configuración del proxy HTTP en el entorno debe permitir que la base de datos acceda al proveedor de servicios en la nube.

El administrador del conjunto define esta configuración al crear la infraestructura de Exadata Cloud@Customer, como se describe en Uso de la consola para aprovisionar Exadata Database Service on Cloud@Customer.

Note:

La configuración de red, incluido el proxy HTTP, solo se puede editar hasta que la infraestructura de Exadata tenga el estado Necesita activación. Una vez activada, no puede editar esa configuración.

La configuración de un proxy HTTP para una infraestructura de Exadata ya aprovisionada necesita una solicitud de servicio (SR) en My Oracle Support. Consulte Creación de una solicitud de servicio en My Oracle Support para obtener más información.

DBMS_CLOUD Subprogramas para objetos y archivos

Los subprogramas para la gestión de objetos y archivos dentro del paquete DBMS_CLOUD.

Subprograma Descripción

Procedimiento COPY_COLLECTION

Este procedimiento carga datos en una recopilación de SODA existente, ya sea desde Cloud Object Storage o desde archivos en un directorio.

Procedimiento COPY_DATA

Este procedimiento carga datos en tablas de Autonomous Database existentes desde Cloud Object Storage o desde archivos de un directorio.

COPY_DATA Procedimiento para archivos Avro, ORC o Parquet

Este procedimiento con el parámetro format type definido en el valor orc, parquet o avro carga datos en tablas de Autonomous Database existentes desde archivos ORC, Parquet o Avro en la nube o desde archivos ORC, Parquet o Avro en un directorio.

De forma similar a los archivos de texto, los datos se copian del archivo ORC, Parquet o Avro de origen en la tabla interna preexistente.

Procedimiento COPY_OBJECT

Este procedimiento copia archivos de un cubo de Cloud Object Storage a otro.

Procedimiento CREATE_EXTERNAL_TABLE

Con este procedimiento se crea una tabla externa en los archivos de la nube o de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database.

CREATE_EXTERNAL_TABLE Procedimiento para archivos Avro, ORC o Parquet

Este procedimiento con el parámetro format type definido en el valor parquet, orc o avro crea una tabla externa con archivos de formato Parquet, ORC o Avro en la nube o en un directorio.

Permite ejecutar consultas en datos externos desde Autonomous Database.

Procedimiento CREATE_EXTERNAL_TEXT_INDEX

Este procedimiento crea un índice de texto en los archivos del almacén de objetos.

Procedimiento CREATE_HYBRID_PART_TABLE

Con este procedimiento se crea una tabla particionada híbrida. Permite ejecutar consultas en datos particionados híbridos desde Autonomous Database.

Procedimiento DELETE_ALL_OPERATIONS

Este procedimiento borra todas las operaciones de carga de datos registradas en la tabla user_load_operations del esquema o todas las operaciones de carga de datos del tipo especificado, según se haya indicado con el parámetro type.

Procedimiento DELETE_FILE

Este procedimiento elimina el archivo especificado del directorio especificado en Autonomous Database

Procedimiento DELETE_OBJECT

Este procedimiento suprime el objeto especificado en el almacén de objetos.

Procedimiento DELETE_OPERATION

Este procedimiento acepta operation_id como entrada y suprime los logs asociados al operation_id especificado.

Procedimiento DROP_EXTERNAL_TEXT_INDEX

Este procedimiento borra el índice de texto en los archivos del almacén de objetos.

Procedimiento EXPORT_DATA

Con este procedimiento se exportan los datos de Autonomous Database a archivos en la nube según el resultado de una consulta. El formulario sobrecargado permite utilizar el parámetro operation_id. Según la opción type del parámetro format especificada, el procedimiento exporta filas al almacén de objetos en la nube como texto con opciones de CSV, JSON, Parquet o XML

Procedimiento y función GET_OBJECT

Este procedimiento está sobrecargado. El formulario de procedimiento lee un objeto de Cloud Object Storage y lo copia en Autonomous Database. El formulario de función lee un objeto de Cloud Object Storage y devuelve un valor BLOB a Autonomous Database.

Función LIST_FILES

Esta función muestra los archivos del directorio especificado. Los resultados incluyen los nombres de archivo y metadatos adicionales sobre los archivos, como el tamaño de archivo en bytes, el registro de hora de creación y el registro de hora de la última modificación.

Función LIST_OBJECTS

Esta función muestra los objetos de la ubicación especificada en el almacén de objetos. Los resultados incluyen los nombres de objetos y metadatos adicionales sobre los objetos, como el tamaño, el total de control, el registro de hora de creación y el registro de hora de la última modificación.

Procedimiento MOVE_OBJECT

Este procedimiento mueve un objeto de un cubo de Cloud Object Storage a otro.

Procedimiento PUT_OBJECT

Este procedimiento está sobrecargado. En un formulario el procedimiento copia un archivo de Autonomous Database en Cloud Object Storage. En otro formulario, el procedimiento copia un valor BLOB de Autonomous Database en Cloud Object Storage.

Procedimiento SYNC_EXTERNAL_PART_TABLE

Con este procedimiento se simplifica la actualización de una tabla particionada externa desde archivos de la nube. Ejecute este procedimiento siempre que se agreguen nuevas particiones o cuando se eliminen particiones del origen del almacén de objetos para la tabla particionada externa.

Procedimiento VALIDATE_EXTERNAL_TABLE

Este procedimiento valida los archivos de origen para una tabla externa, genera información de log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla de archivos incorrectos en Autonomous Database.

Procedimiento VALIDATE_EXTERNAL_PART_TABLE

Con este procedimiento se validan los archivos de origen para una tabla particionada externa, se genera información de log y se almacenan las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla de archivos incorrectos en Autonomous Database.

Procedimiento VALIDATE_HYBRID_PART_TABLE

Con este procedimiento se validan los archivos de origen para una tabla particionada híbrida, se genera información de log y se almacenan las filas que no coinciden con las opciones de formato especificadas para la tabla híbrida en una tabla de archivos incorrectos en Autonomous Database.

Procedimiento COPY_COLLECTION

Este procedimiento carga datos en una recopilación de SODA desde Cloud Object Storage o desde un directorio. Si la recopilación de SODA especificada no existe, el procedimiento la crea. El formulario sobrecargado permite utilizar el parámetro operation_id.

Sintaxis

DBMS_CLOUD.COPY_COLLECTION (
    collection_name   IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    format            IN CLOB     DEFAULT NULL
);

DBMS_CLOUD.COPY_COLLECTION (
    collection_name   IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    format            IN CLOB     DEFAULT NULL,
    operation_id      OUT NOCOPY NUMBER
);

Parámetros

parámetro Descripción

collection_name

Nombre de la recopilación de SODA en la que se cargarán los datos. Si ya existe una recopilación con este nombre, se cargarán los datos especificados; de lo contrario, se creará una nueva recopilación.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Este parámetro no se utiliza al especificar un directorio con file_uri_list.

file_uri_list

Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen.

URI de archivo de origen de nube

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE.

Por ejemplo:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

Directorio

Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es:'MY_DIR:filename.ext'. Por defecto, el nombre de directorio MY_DIR es un objeto de base de datos y no distingue entre mayúsculas y minúsculas. El nombre de archivo distingue mayúsculas.

Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo:'MY_DIR:*" o 'MY_DIR:test?'

Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo:'MY_DIR1:*, MY_DIR2:test?'

Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo:'"my_dir1":*, "my_dir2":Test?'

Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo:'MY_DIR:''filename.ext'. Especifica que filename empieza por una comilla (').

format

Opciones que describen el formato de los archivos de origen. Estas opciones se especifican como una cadena JSON.

Los formatos soportados son: characterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarray, keyassignment y keypath.

Además de los formatos mencionados para datos JSON, Autonomous Database también soporta otros formatos. Para obtener la lista de argumentos de formato soportados por Autonomous Database, consulte Parámetro de formato.

operation_id

Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS.

Ejemplo

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'OBJ_STORE_CRED',
            username        => 'user_name@oracle.com',
            password        => 'password'
            );

    DBMS_CLOUD.COPY_COLLECTION(
            collection_name => 'myCollection',
            credential_name => 'OBJ_STORE_CRED',
            file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'  
            );
END;
/

Procedimiento COPY_DATA

Este procedimiento carga datos en tablas de Autonomous Database existentes desde archivos de la nube o desde archivos de un directorio. El formulario sobrecargado permite utilizar el parámetro operation_id.

Sintaxis

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    schema_name       IN VARCHAR2,
    field_list        IN CLOB,
    format            IN CLOB);

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB DEFAULT NULL,
    schema_name       IN VARCHAR2 DEFAULT NULL,
    field_list        IN CLOB DEFAULT NULL,
    format            IN CLOB DEFAULT NULL
    operation_id      OUT NOCOPY NUMBER);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla de destino en la base de datos. Es necesario crear la tabla de destino para poder ejecutar COPY_DATA.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Este parámetro no se utiliza al especificar un directorio con file_uri_list.

file_uri_list

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

URI de archivo de origen de nube

Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE.

Por ejemplo:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

Directorio

Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es:'MY_DIR:filename.ext'. Por defecto, el nombre de directorio MY_DIR es un objeto de base de datos y no distingue entre mayúsculas y minúsculas. El nombre de archivo distingue mayúsculas.

Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo:'MY_DIR:*" o 'MY_DIR:test?'

Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo:'MY_DIR1:*, MY_DIR2:test?'

Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo:'"my_dir1":*, "my_dir2":Test?'

Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo:'MY_DIR:''filename.ext'. Especifica que filename empieza por una comilla (').

schema_name

Nombre del esquema en el que reside la tabla de destino. El valor por defecto es NULL, lo que significa que la tabla de destino está en el mismo esquema que el usuario que ejecuta el procedimiento.

field_list

Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es NULL significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula field_list de las tablas externas normales de Oracle. Para obtener más información, consulte field_list en Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

Cuando el valor de la opción type del parámetro format es json, este parámetro se ignora.

Para ver un ejemplo de uso de field_list, consulte Procedimiento CREATE_EXTERNAL_TABLE.

format

Opciones que describen el formato del origen, el log y los archivos incorrectos. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato.

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

operation_id

Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS.

Notas de uso

El delimitador de registro por defecto es detected newline. Con detected newline, DBMS_CLOUD intenta buscar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro. DBMS_CLOUD busca primero el carácter de línea nueva \r\n de Windows. 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, DBMS_CLOUD 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. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registro, puede que aparezca un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.

Consulte Parámetro de formato para obtener información sobre la opción de formato recorddelmiter.

Ejemplos

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DEF_CRED_NAME',
            username        => 'user_name@oracle.com',
            password        => 'password'
            );
END;
/
BEGIN
 DBMS_CLOUD.COPY_DATA(
    table_name =>'CHANNELS',
    credential_name =>'DEF_CRED_NAME',
    file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
    format => json_object('delimiter' value ',')
 );
END;
/
BEGIN
    DBMS_CLOUD.COPY_DATA(
            table_name      => 'ORDERS',
            schema_name     => 'TEST_SCHEMA',
            credential_name => 'DEF_CRED_NAME',
	     file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
            format          =>  json_object('ignoreblanklines' value TRUE,
                                            'rejectlimit' value '0',
                                            'dateformat' value 'yyyy-mm-dd',
                                            'regexuri' value TRUE)
            );
END;
/

COPY_DATA Procedimiento para archivos Avro, ORC o Parquet

Este procedimiento con el parámetro format type definido en el valor avro, orc o parquet carga datos en tablas de Autonomous Database existentes desde archivos Avro, ORC o Parquet en la nube o desde archivos en un directorio.

De forma similar a los archivos de texto, los datos se copian del archivo de origen Avro, ORC o Parquet en la tabla interna preexistente.

Sintaxis

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    schema_name       IN VARCHAR2 DEFAULT,
    field_list        IN CLOB DEFAULT,
    format            IN CLOB DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla de destino en la base de datos. Es necesario crear la tabla de destino para poder ejecutar COPY_DATA.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Este parámetro no se utiliza al especificar un directorio con file_uri_list.

file_uri_list

Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen.

URI de archivo de origen de nube

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE.

Por ejemplo:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

Directorio

Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es:'MY_DIR:filename.ext'. Por defecto, el nombre de directorio MY_DIR es un objeto de base de datos y no distingue entre mayúsculas y minúsculas. El nombre de archivo distingue mayúsculas.

Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo:'MY_DIR:*" o 'MY_DIR:test?'

Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo:'MY_DIR1:*, MY_DIR2:test?'

Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo:'"my_dir1":*, "my_dir2":Test?'

Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo:'MY_DIR:''filename.ext'. Especifica que filename empieza por una comilla (').

schema_name

Nombre del esquema en el que reside la tabla de destino. El valor por defecto es NULL, lo que significa que la tabla de destino está en el mismo esquema que el usuario que ejecuta el procedimiento.

field_list

Se ignora para los archivos Avro, ORC o Parquet.

Los campos del origen coinciden con las columnas de la tabla externa por nombre. Los tipos de datos de origen se convierten en el tipo de datos de columna de tabla externa.

Para los archivos ORC, consulte DBMS_CLOUD Asignación de tipo de datos de ORC a Oracle.

Para los archivos Parquet, consulte Asignación de tipo de datos de Parquet a Oracle en el paquete DBMS_CLOUD para obtener más información sobre la asignación.

Para los archivos Avro, consulte Asignación de tipo de datos de Avro a Oracle en el paquete DBMS_CLOUD para obtener más información sobre la asignación.

format

Opciones que describen el formato de los archivos de origen. Para los archivos Avro, ORC o Parquet, solo están soportadas dos opciones: consulte Opciones de formato del paquete DBMS_CLOUD para Avro, ORC o Parquet.

Notas de uso

  • Al igual que con otros archivos de datos, las cargas de datos de Avro, ORC y Parquet generan logs que se pueden ver en las tablas dba_load_operations y user_load_operations. Con cada operación de carga se agrega un registro a dba[usuario]_load_operations que indica la tabla que contiene los logs.

    En la tabla de logs se proporciona información de resumen sobre la carga.

  • Para Avro, ORC o Parquet, cuando el parámetro format type se define en el valor avro, orc o parquet, la tabla BADFILE_TABLE siempre está vacía.

    • Para los archivos Parquet, los errores de restricción PRIMARY KEY devuelven un error ORA.

    • Si los datos de una columna encuentran un error de conversión, por ejemplo, la columna de destino no es lo suficientemente grande para contener el valor convertido, el valor de la columna se define en NULL. Esto no genera un registro rechazado.

Procedimiento COPY_OBJECT

Este procedimiento copia un objeto de un cubo o carpeta de Cloud Object Storage a otro.

La carpeta o el cubo de origen y de destino pueden estar en el mismo proveedor del almacén de objetos en la nube o en otro diferente.

Cuando el origen y el destino están en distintos almacenes de objetos o tienen cuentas diferentes con el mismo proveedor de nube, puede proporcionar nombres de credenciales independientes para las ubicaciones de origen y destino.

El nombre de la credencial de origen también lo utiliza por defecto la ubicación de destino cuando no se proporciona el nombre de la credencial de destino.

Sintaxis

DBMS_CLOUD.COPY_OBJECT (
    source_credential_name  IN  VARCHAR2 DEFAULT NULL,
    source_object_uri       IN  VARCHAR2,
    target_object_uri       IN  VARCHAR2,
    target_credential_name  IN  VARCHAR2 DEFAULT NULL
);

Parámetros

parámetro Descripción

source_credential_name

Nombre de la credencial para acceder a Cloud Object Storage de origen.

Si no proporciona un valor source_credential_name, credential_name se define en NULL.

source_object_uri

Especifica el URI, que apunta a la ubicación de carpeta o cubo de Object Storage de origen.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

target_object_uri

Especifica el URI del almacén de objetos de destino.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

target_credential_name

Nombre de la credencial para acceder a la ubicación de almacenamiento de objetos en la nube de destino.

Si no proporciona un valor target_credential_name, target_object_uri se define en el valor source_credential_name.

Ejemplo

BEGIN 
DBMS_CLOUD.COPY_OBJECT (
    source_credential_name => 'OCI_CRED',
    source_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
    target_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/

Procedimiento CREATE_EXTERNAL_PART_TABLE

Con este procedimiento se crea una tabla particionada externa en archivos de la nube o de archivos de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database.

Sintaxis

DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    partitioning_clause  IN CLOB,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);


DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    file_uri_list        IN VARCHAR2,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

partitioning_clause

Especifica la cláusula de partición completa, incluida la información de ubicación para particiones individuales.

Si utiliza el parámetro partitioning_clause, el parámetro file_uri_list no está permitido.

file_uri_list

Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen.

URI de archivo de origen de nube

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE.

Esta opción solo está soportada con tablas externas creadas en un archivo de Object Storage.

Por ejemplo:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Si utiliza el parámetro file_uri_list, el parámetro partitioning_clause no está permitido.

El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

column_list

Lista delimitada por comas de nombres de columna y tipos de datos para la tabla externa. Este parámetro tiene los siguientes requisitos, según el tipo de archivos de datos especificados con el parámetro file_uri_list:

  • El parámetro column_list es necesario con archivos no estructurados. Mediante el uso de archivos no estructurados, por ejemplo, con archivos de texto CSV, el parámetro column_list debe especificar todos los nombres de columna y tipos de dato dentro del archivo de datos, así como las columnas de partición derivadas del nombre de objeto.

  • El parámetro column_list es opcional con archivos estructurados. Por ejemplo, con archivos de datos Avro, ORC o Parquet, column_list no es necesario. Si no se incluye column_list, la opción partition_columns del parámetro format debe incluir especificaciones para los nombres de columna (name) y los tipos de datos (type).

field_list

Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es NULL significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula field_list de las tablas externas normales de Oracle. Para obtener más información, consulte field_list en Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

format

La opción de formato partition_columns especifica los nombres de columna DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE y 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 en el caso de archivos Avro, ORC o Parquet, la opción partition_columns incluye el nombre de columna, la subcláusula name y el tipo de datos, la subcláusula type. 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 están basados en el formato de colmena, el orden de las columnas especificadas partition_columns debe coincidir con el orden en el que aparecen en el nombre de objeto en la ruta de archivo especificada en el parámetro file_uri_list.

Para ver todas las opciones del parámetro format que describen el formato de los archivos de origen, consulte Formatos de URI de Cloud Object Storage.

Notas de uso

  • No puede llamar a este procedimiento con los parámetros partitioning_clause y file_uri_list.

  • La especificación del parámetro column_list es opcional con archivos de datos estructurados, incluidos archivos de datos Avro, Parquet u ORC. Si no se especifica column_list, la opción partition_columns del parámetro format debe incluir name y type.

  • El parámetro column_list es necesario con archivos de datos no estructurados, como archivos de texto CSV.

  • El procedimiento DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE soporta archivos externos en los servicios de almacenamiento de objetos en la nube soportados, incluidos:
    • Oracle Cloud Infrastructure Object Storage

    • Azure Blob Storage

    Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

  • El procedimiento DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE admite archivos particionados externos en directorios, ya sea en un sistema de archivos local o en un sistema de archivos de red.

  • Al llamar a DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE con el parámetro file_uri_list, los tipos de columnas especificados en el nombre de archivo del almacén de objetos en la nube deben ser uno de los siguientes:

    VARCHAR2(n)
    NUMBER(n)
    NUMBER(p,s)
    NUMBER
    DATE
    TIMESTAMP(9)
  • El delimitador de registro por defecto es detected newline. Con detected newline, DBMS_CLOUD intenta buscar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro. DBMS_CLOUD busca primero el carácter de línea nueva \r\n de Windows. 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, DBMS_CLOUD 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. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registro, puede que aparezca un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.

    Consulte Cloud Object Storage URI Formats para obtener información sobre la opción de formato recorddelmiter.

  • Las tablas particionadas externas que crea con DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE incluyen dos columnas invisibles: file$path y file$name. Estas columnas ayudan a identificar el archivo del que procede un registro.

    • file$path: especifica el texto de la ruta del archivo hasta el principio del nombre del objeto.

    • file$name: especifica el nombre del objeto, incluido todo el texto que sigue al nombre del cubo.

Ejemplos

Ejemplo con el parámetro partitioning_clause:

BEGIN  
   DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
      table_name =>'PET1',  
      credential_name =>'OBJ_STORE_CRED',
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
      column_list => 'col1 number, col2 number, col3 number',
      partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) location
                                    ( ''&base_URL//file_11.txt'')
                                 ,
                                 partition p2 values less than (2000) location
                                    ( ''&base_URL/file_21.txt'')
                                 ,
                                 partition p3 values less than (3000) location 
                                    ( ''&base_URL/file_31.txt'')
                                 )'
     );
   END;
/  


BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
       table_name          => 'PET',
       format              => json_object('delimiter'value ','),
       column_list         => 'name varchar2(20), gender varchar2(10), salary number',
       partitioning_clause => 'partition by range (salary)
              (   -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR 
                  partition p1 values less than (100) LOCATION (''test1.csv''),
                   -- Use test2.csv in a specified directory MY_DIR
                  partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'')        )'   );                       
END;                     
/

Ejemplo con los parámetros file_uri_list y column_list con archivos de datos no estructurados:

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
   table_name => 'MYSALES',
   credential_name => 'DEF_CRED_NAME',
   file_uri_list     => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv', 
   column_list       => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)', 
   field_list        => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
   format            => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/ 

Ejemplo con file_uri_list sin el parámetro column_list con archivos de datos estructurados:

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
  table_name => 'MYSALES',
  credential_name => 'DEF_CRED_NAME',
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
    table_name      => 'MYSALES',
    credential_name => 'DEF_CRED_NAME',
    file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
    format          => 
        json_object('type' value 'parquet', 'schema' value 'first',
                    'partition_columns' value 
                          json_array(
                                json_object('name' value 'country', 'type' value 'varchar2(100)'),
                                json_object('name' value 'year', 'type' value 'number'),
                                json_object('name' value 'month', 'type' value 'varchar2(2)')
                          )
         )
    );
END;
/

Procedimiento CREATE_EXTERNAL_TABLE

Este procedimiento crea una tabla externa en archivos de la nube o de archivos de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database.

Sintaxis

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2,
    file_uri_list    IN CLOB,
    column_list      IN CLOB,
    field_list       IN CLOB DEFAULT,
    format           IN CLOB DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Este parámetro no se utiliza al especificar un directorio o una URL de hiperenlace de tabla con file_uri_list.

file_uri_list

Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen.

URI de archivo de origen de nube

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE.

Esta opción solo está soportada con tablas externas creadas en un archivo de Object Storage.

Por ejemplo:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

Directorio

Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es:'MY_DIR:filename.ext'. Por defecto, el nombre de directorio MY_DIR es un objeto de base de datos y no distingue entre mayúsculas y minúsculas. El nombre de archivo distingue mayúsculas.

Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo:'MY_DIR:*" o 'MY_DIR:test?'

Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo:'MY_DIR1:*, MY_DIR2:test?'

Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo:'"my_dir1":*, "my_dir2":Test?'

Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo:'MY_DIR:''filename.ext'. Especifica que filename empieza por una comilla (').

column_list

Lista delimitada por comas de nombres de columna y tipos de datos para la tabla externa.

field_list

Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es nulo, lo que significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula field_list de las tablas externas normales de Oracle Database. Para obtener más información sobre field_list, consulte ORACLE_LOADER Access Driver field_list en la cláusula field_definitions en Oracle Database 19c Utilities u Oracle Database 23ai Utilities.

format

Opciones que describen el formato de los archivos de origen. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato.

Para los archivos de formato Avro, ORC o Parquet, consulte Procedimiento CREATE_EXTERNAL_TABLE para archivos de Avro, ORC o Parquet.

Notas de uso

  • El procedimiento DBMS_CLOUD.CREATE_EXTERNAL_TABLE soporta archivos externos en los servicios de almacenamiento de objetos en la nube soportados, incluido Azure Blob Storage.

    La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.

    Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

  • El delimitador de registro por defecto es detected newline. Con detected newline, DBMS_CLOUD intenta buscar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro. DBMS_CLOUD busca primero el carácter de línea nueva \r\n de Windows. 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, DBMS_CLOUD 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. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registro, puede que aparezca un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.

    Consulte Parámetro de formato para obtener información sobre la opción de formato recorddelimiter.

Ejemplo

BEGIN  
   DBMS_CLOUD.CREATE_EXTERNAL_TABLE(   
      table_name =>'WEATHER_REPORT_DOUBLE_DATE',   
      credential_name =>'OBJ_STORE_CRED',   
      file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
      format => json_object('type' value 'csv', 'skipheaders' value '1'),   
      field_list => 'REPORT_DATE DATE''mm/dd/yy'',                   
                     REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
                     ACTUAL_MEAN_TEMP,                 
                     ACTUAL_MIN_TEMP,                 
                     ACTUAL_MAX_TEMP,                 
                     AVERAGE_MIN_TEMP,                    
                     AVERAGE_MAX_TEMP,     
                     AVERAGE_PRECIPITATION',   
      column_list => 'REPORT_DATE DATE,   
                     REPORT_DATE_COPY DATE,
                     ACTUAL_MEAN_TEMP NUMBER,  
                     ACTUAL_MIN_TEMP NUMBER,  
                     ACTUAL_MAX_TEMP NUMBER,  
                     AVERAGE_MIN_TEMP NUMBER,   
                     AVERAGE_MAX_TEMP NUMBER,                  
                     AVERAGE_PRECIPITATION NUMBER');
   END;
/ 

SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where         
   actual_mean_temp > 69 and actual_mean_temp < 74

CREATE_EXTERNAL_TABLE Procedimiento para Apache Iceberg

Este procedimiento crea tablas externas para tablas de Apache Iceberg en las configuraciones soportadas.

Se admiten estas configuraciones específicas:

Sintaxis

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB DEFAULT NULL,
    field_list       IN CLOB DEFAULT NULL,
    format           IN CLOB DEFAULT NULL
);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

credential_name

Nombre de la credencial utilizada para acceder a los archivos de datos, los archivos de metadatos y el catálogo de Iceberg (si se utiliza).

Para las configuraciones de AWS y OCI, la credencial se debe crear como se describe en el procedimiento CREATE_CREDENTIAL.

Actualmente no se admiten las credenciales de AWS Amazon Resource Names (ARN).

file_uri_list

Debe ser NULL si se especifica un catálogo de Iceberg (consulte el parámetro format a continuación). Si no se utiliza un catálogo de iceberg, file_uri_list debe contener el URI del archivo de metadatos de iceberg.

column_list

Debe ser NULL, ya que los nombres y tipos de columna se derivan automáticamente de los metadatos de Iceberg.

Los nombres de columna coinciden con los nombres encontrados en los archivos de datos subyacentes (Parquet, Avro, ORC). Los tipos de dato de Oracle se derivan mediante las asignaciones Parquet/Avro/ORC entre los tipos de dato Iceberg y Parquet, Avro y ORC. Por lo tanto, los usuarios no pueden especificar column_list.

field_list

Debe ser NULL, ya que los nombres de columna y los tipos de dato se derivan automáticamente de los metadatos de Iceberg.

format

El parámetro format tiene una estructura diferente según el tipo de tabla Iceberg y qué información se utiliza para crear la tabla externa, por ejemplo, información de un catálogo de datos o un URI de metadatos directos.

Consulte Soporte de Iceberg en muestras de OCI Data Flow y Formatos de URI DBMS_CLOUD para obtener más información.

Ejemplo de parámetro de formato para tablas de AWS Iceberg utilizando un catálogo de AWS Glue

A continuación se muestra un parámetro format de ejemplo al crear tablas en una tabla AWS Iceberg mediante un catálogo de AWS Glue:

format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg',
                   'protocol_config' value
                    json_object('iceberg_catalog_type' value 'aws_glue',
                                'iceberg_glue_region'  value 'glue region',
                                'iceberg_table_path'   value 'database_name.table_name'))); 
Donde, el parámetro access_protocol contiene un objeto JSON con dos elementos de la siguiente manera:
  • protocol_type: debe ser 'iceberg'
  • protocol_config: objeto JSON anidado que especifica los detalles del catálogo de iceberg.
    • iceberg_catalog_type: debe ser 'aws_glue'
    • iceberg_glue_region: región del catálogo, por ejemplo, 'us-west-1'
    • iceberg_table_path: ruta de acceso glue database.glue table name.

Parámetro de formato de ejemplo para la tabla Iceberg de AWS mediante un URI de archivo de metadatos

A continuación se muestra un parámetro format de ejemplo al crear tablas en una tabla de AWS Iceberg mediante un URI de archivo de metadatos:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')

Parámetro de formato de ejemplo para la tabla OCI Iceberg mediante el catálogo HadoopCatalog

A continuación se muestra un parámetro format de ejemplo al crear tablas en una tabla de OCI Iceberg creada por OCI Data Flow mediante el catálogo HadoopCatalog:
format => json_object('access_protocol' value
       json_object('protocol_type'   value 'iceberg',
                   'protocol_config' value
                   json_object('iceberg_catalog_type'  value 'hadoop',
                               'iceberg_warehouse'     value '<OCI folder URI>',
                               'iceberg_table_path'    value 'database_name.table_name')));
Donde, el parámetro access_protocol contiene un objeto JSON con dos elementos de la siguiente manera:
  • protocol_type: debe ser 'iceberg'
  • protocol_config: objeto JSON anidado que especifica los detalles del catálogo de iceberg.
    • iceberg_catalog_type: debe ser 'hadoop'
    • iceberg_warehouse: ruta de acceso del directorio de almacén que se utiliza al generar la tabla, en formato URI nativo.
    • iceberg_table_path: ruta de acceso database_name.table name utilizada al crear la tabla.

Parámetro de formato de ejemplo para la tabla OCI Iceberg mediante el URI del archivo de metadatos

A continuación se muestra un parámetro format de ejemplo al crear tablas en una tabla de OCI Iceberg mediante el URI del archivo de metadatos:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')
Donde el parámetro access_protocol contiene un objeto JSON con un elemento como se indica a continuación:
  • protocol_type: debe ser 'iceberg'

CREATE_EXTERNAL_TABLE Procedimiento para archivos Avro, ORC o Parquet

Este procedimiento con el parámetro format type definido en el valor avro, orc o parquet crea una tabla externa con archivos de formato Avro, ORC o Parquet en la nube o en un directorio.

Permite ejecutar consultas en datos externos desde Autonomous Database.

Sintaxis

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB,
    field_list       IN CLOB DEFAULT,
    format           IN CLOB DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Este parámetro no se utiliza al especificar un directorio con file_uri_list.

file_uri_list

Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen.

URI de archivo de origen de nube

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la subcarpeta en los URI y la coincidencia de patrones es idéntica a la realizada por la función REGEXP_LIKE.

Esta opción solo está soportada con tablas externas creadas en un archivo de Object Storage.

Por ejemplo:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.parquet'

El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

Directorio

Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es:'MY_DIR:filename.ext'. Por defecto, el nombre de directorio MY_DIR es un objeto de base de datos y no distingue entre mayúsculas y minúsculas. El nombre de archivo distingue mayúsculas.

Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo:'MY_DIR:*" o 'MY_DIR:test?'

Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo:'MY_DIR1:*, MY_DIR2:test?'

Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo:'"my_dir1":*, "my_dir2":Test?'

Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo:'MY_DIR:''filename.ext'. Especifica que filename empieza por una comilla (').

column_list

(Opcional) Este campo, cuando se especifica, sustituye el parámetro format->schema que especifica que el esquema, las columnas y los tipos de datos se derivan automáticamente. Consulte el parámetro format para obtener más información.

Si se especifica column_list para el origen Avro, ORC o Parquet, los nombres de columna deben coincidir con las columnas encontradas en el archivo. Los tipos de datos de Oracle se deben asignar correctamente a los tipos de datos Avro, ORC o Parquet.

Para los archivos de Parquet, consulte Asignación de tipo de datos de Parquet a Oracle en el paquete DBMS_CLOUD.

Para los archivos ORC, consulte Asignación de tipo de datos de ORC a Oracle en el paquete DBMS_CLOUD para obtener información.

Para los archivos de Avro, consulte Asignación de tipo de datos de Avro a Oracle en el paquete DBMS_CLOUD para obtener más información.

field_list

Se ignora para los archivos Avro, ORC o Parquet.

Los campos del origen coinciden con las columnas de la tabla externa por nombre. Los tipos de datos de origen se convierten en el tipo de datos de columna de tabla externa.

Para los archivos ORC, consulte Asignación de tipo de datos de ORC a Oracle en el paquete DBMS_CLOUD

Para los archivos de Parquet, consulte Asignación de tipo de datos de Parquet a Oracle en el paquete DBMS_CLOUD.

Para los archivos de Avro, consulte Asignación de tipo de datos de Avro a Oracle en el paquete DBMS_CLOUD para obtener más información.

format

Para los archivos de origen Avro, ORC o Parquet type, consulte DBMS_CLOUD Opciones de formato del paquete para Avro, ORC o Parquet para obtener más información.

Ejemplos de ORC

format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')

Ejemplos de Avro

format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')

Ejemplos de Parquet

format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')

Asignación de nombres de columna de Avro, ORC o Parquet a nombres de columna de Oracle

Consulte Asignación de nombres de Avro, ORC y Parquet a la columna de Oracle en el paquete DBMS_CLOUD para obtener información sobre la asignación de nombres de columna y el uso de conversión de nombres de columna en Oracle SQL.

Procedimiento CREATE_EXTERNAL_TEXT_INDEX

Con este procedimiento se crea un índice de texto en los archivos de Object Storage.

El procedimiento CREATE_EXTERNAL_TEXT_INDEX crea un índice de texto en los archivos de Object Storage especificados en la ubicación location_uri. El índice se refresca a intervalos regulares para las nuevas adiciones o supresiones realizadas con archivos en el URI de ubicación.

Sintaxis

DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
      credential_name  IN  VARCHAR2 DEFAULT NULL,
      location_uri     IN  VARCHAR2,
      index_name       IN  VARCHAR2,
      format           IN  CLOB     DEFAULT NULL
);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a la ubicación de Cloud Object Storage. Para los URI de cubo públicos, autenticados previamente o firmados previamente, se puede especificar un valor NULL.

Si no proporciona un valor credential_name, credential_name se define en un valor NULL.

location_uri

Especifica el URI de carpeta o cubo del almacén de objetos.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI de almacenamiento de objetos en la nube de archivos del paquete para obtener más información.

index_name Especifica el nombre del índice que está creando en los archivos ubicados en la ubicación location_uri.

Este parámetro es obligatorio.

format

Especifica opciones de configuración adicionales. Las opciones se especifican como una cadena JSON.

Las opciones de formato soportadas son:

refresh_rate: especifica la frecuencia en minutos en la que se refresca el índice local. Las nuevas cargas y supresiones de archivos dan como resultado un refrescamiento de índice. El valor por defecto es de 5 minutos.

binary_files: especifica si el contenido de los archivos que se van a indexar es binario. Por ejemplo, PDF, MS-Word, el valor por defecto es FALSE.

stop_words: especifica que se puede proporcionar una lista de palabras de parada al crear índices.

El valor stop_words indica si se trata de una lista de palabras irrelevantes o de una tabla de palabras irrelevantes. Cuando se proporciona una matriz JSON, el parámetro de palabras de parada se trata como una lista; de lo contrario, el parámetro de palabras de parada se trata como un nombre de tabla cuya columna "STOP_WORDS" se utiliza para leer en la lista de palabras de parada.

Puede especificar palabras de parada mediante los siguientes métodos:

  • Matriz JSON: por ejemplo: format := '{"stop_words":["king","queen"]}'
  • Nombre de tabla de palabras de parada: por ejemplo: format := '{"stop_words":"STOP_WORDS_TABLE"}'

Si no proporciona un parámetro format, format se define en un valor NULL.

Ejemplo

BEGIN 
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
        credential_name => 'DEFAULT_CREDENTIAL',
        location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
        index_name      => 'EMP',
        format          => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/

Procedimiento CREATE_HYBRID_PART_TABLE

Con este procedimiento se crea una tabla particionada híbrida. Esto permite ejecutar consultas en datos particionados híbridos desde Autonomous Database mediante objetos y archivos de base de datos en la nube, u objetos y archivos de base de datos en un directorio.

Sintaxis

DBMS_CLOUD.CREATE_HYBRID_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    partitioning_clause  IN CLOB,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

partitioning_clause

Especifica la cláusula de partición completa, incluida la información de ubicación para particiones individuales.

Para utilizar directorios, la cláusula de partición soporta los valores LOCATION y DEFAULT DIRECTORY.

Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube.

Las expresiones regulares solo se pueden utilizar cuando el parámetro regexuri format está definido en TRUE.

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 solo están soportados para el nombre de archivo o la ruta de la 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.

Por ejemplo:

partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
				    ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.txt''),….

Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición REGEXP_LIKE.

column_list

Lista delimitada por comas de nombres de columna y tipos de datos para la tabla externa.

field_list

Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es NULL significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula field_list de las tablas externas normales de Oracle. Para obtener más información, consulte field_list en Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

format

Opciones que describen el formato de los archivos de origen. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato.

Notas de uso

  • El procedimiento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE soporta archivos externos en los servicios de almacenamiento de objetos en la nube soportados, incluido Azure Blob Storage.

    La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.

    Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

  • El procedimiento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE admite archivos particionados híbridos en directorios, ya sea en un sistema de archivos local o en un sistema de archivos de red.

  • Las tablas particionadas externas que crea con DBMS_CLOUD.CREATE_HYBRID_PART_TABLE incluyen dos columnas invisibles file$path y file$name. Estas columnas ayudan a identificar el archivo del que procede un registro.

    • file$path: especifica el texto de la ruta del archivo hasta el principio del nombre del objeto.

    • file$name: especifica el nombre del objeto, incluido todo el texto que sigue al nombre del cubo.

Ejemplos

BEGIN  
   DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
      table_name =>'HPT1',  
      credential_name =>'OBJ_STORE_CRED',  
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
      column_list => 'col1 number, col2 number, col3 number',
      partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
                                    ( ''&base_URL/file_11.txt'')
                                 ,
                                 partition p2 values less than (2000) external location
                                    ( ''&base_URL/file_21.txt'')
                                 ,
                                 partition p3 values less than (3000)
                                 )'
     );
   END;
/ 


BEGIN
   DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
    table_name  => 'HPT1',
    format      => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
    column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
    partitioning_clause => 'partition by range (B  2  ALANCE)
               (partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
                partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
                partition p3 values less than (3000))' );
END;
/

Procedimiento DELETE_ALL_OPERATIONS

Este procedimiento borra todas las operaciones de carga de datos registradas en la tabla user_load_operations del esquema o todas las operaciones de carga de datos del tipo especificado, según se haya indicado con el parámetro type.

Sintaxis

DBMS_CLOUD.DELETE_ALL_OPERATIONS (
	type      IN VARCHAR DEFAULT NULL);

Parámetros

parámetro Descripción

type

Especifica el tipo de operación que se va a suprimir. Los valores de tipo se pueden encontrar en la columna TYPE de la tabla user_load_operations.

Si no se especifica type, se suprimen todas las filas.

Notas de uso

  • DBMS_CLOUD.DELETE_ALL_OPERATIONS no suprime las operaciones que se están ejecutando actualmente (las operaciones con el estado "En ejecución").

Procedimiento DELETE_FILE

Este procedimiento elimina el archivo especificado del directorio especificado en Autonomous Database.

Sintaxis

 DBMS_CLOUD.DELETE_FILE ( 
       directory_name     IN VARCHAR2,
       file_name          IN VARCHAR2,
       force              IN BOOLEAN DEFAULT FALSE); 

Parámetros

parámetro Descripción

directory_name

Nombre del directorio en la instancia de Autonomous Database.

file_name

Nombre del archivo que se va a eliminar.

force

Ignore y no informe errores si el archivo no existe. Los valores válidos son: TRUE y FALSE. El valor por defecto es FALSE.

Note:

Para ejecutar DBMS_CLOUD.DELETE_FILE con un usuario que no sea ADMIN, debe otorgar privilegios de escritura en el directorio que contiene el archivo a ese usuario.Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de escritura a atpc_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;

Ejemplo

BEGIN
   DBMS_CLOUD.DELETE_FILE(
      directory_name =>  'DATA_PUMP_DIR',
      file_name => 'exp1.dmp' );
   END;
/ 

Procedimiento DELETE_OBJECT

Este procedimiento suprime el objeto especificado en el almacén de objetos.

Sintaxis

DBMS_CLOUD.DELETE_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       force                IN BOOLEAN DEFAULT FALSE);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

object_uri

URI de objeto o de archivo para el objeto que se va a suprimir. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

force

Ignore y no informe errores si el objeto no existe. Los valores válidos son: TRUE y FALSE. El valor por defecto es FALSE.

Ejemplo

BEGIN
   DBMS_CLOUD.DELETE_OBJECT(
       credential_name => 'DEF_CRED_NAME',
       object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
   END;
/ 

Procedimiento DELETE_OPERATION

Este procedimiento borra las entradas de carga de datos para el ID de operación especificado registrado en las tablas user_load_operations o dba_load_operations del esquema.

Sintaxis

DBMS_CLOUD.DELETE_OPERATION (
	id      IN NUMBER);

Parámetros

parámetro Descripción

id

Especifica el ID de operación asociado a las entradas del archivo log que desea suprimir.

Ejemplo

SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);

Procedimiento DROP_EXTERNAL_TEXT_INDEX

Este procedimiento borra el índice de texto en los archivos de Object Storage.

El procedimiento DROP_EXTERNAL_TEXT_INDEX borra el índice especificado creado con el procedimiento CREATE_EXTERNAL_TEXT_INDEX.

Sintaxis

DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
      index_name       IN  VARCHAR2,
);

Parámetros

parámetro Descripción
index_name

Especifica el nombre del índice que va a borrar.

El nombre del índice debe coincidir con el nombre proporcionado en el momento de la creación del índice.

Este parámetro es obligatorio.

Ejemplo

BEGIN 
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
        index_name => 'EMP',
);
END;
/

Procedimiento EXPORT_DATA

Con este procedimiento se exportan los datos de Autonomous Database según el resultado de una consulta. Este procedimiento está sobrecargado y admite la escritura de archivos en la nube o en un directorio.

Según el parámetro format type, el procedimiento exporta archivos a la nube o a una ubicación de directorio como archivos de texto en formato CSV, JSON, Parquet o XML.

Sintaxis

DBMS_CLOUD.EXPORT_DATA (
      credential_name   IN VARCHAR2 DEFAULT NULL,
      file_uri_list     IN CLOB,
      format            IN CLOB,
      query             IN CLOB);

DBMS_CLOUD.EXPORT_DATA (
      credential_name   IN VARCHAR2 DEFAULT NULL,
      file_uri_list     IN CLOB DEFAULT NULL,
      format            IN CLOB DEFAULT NULL,
      query             IN CLOB DEFAULT NULL,
      operation_id      OUT NOCOPY NUMBER);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Cuando no se incluye el parámetro de credencial, especifica la salida a un directorio.

file_uri_list

Hay diferentes formas, según el valor del parámetro format y según si incluye un parámetro credential:
  • When the format parameter type value is json: The JSON on Object Store or to the specified directory location is saved with a generated file name based on the value of the file_uri_list parameter. See File Naming for Text Output (CSV,JSON, Parquet, or XML) for more information.

  • Cuando el valor type del parámetro format es datapump, file_uri_list es una lista delimitada por comas de los archivos de volcado. Especifica los archivos que se van a crear en el almacén de objetos. El uso de caracteres comodín y de sustitución no está soportado en file_uri_list.

  • Cuando no se especifica el parámetro credential_name, se proporciona un nombre de directorio en file_uri_list.

El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

format

Cadena JSON que proporciona opciones de formato de exportación.

La opción admitida es:

  • type: la opción type format es necesaria y debe tener uno de los valores: csv | datapump | json | parquet | xml.

Consulte DBMS_CLOUD Package Format Options for EXPORT_DATA.

query

Utilice este parámetro para especificar una sentencia SELECT de modo que solo se exporten los datos necesarios. La consulta determina el contenido de los archivos que exporta como archivos de texto CSV, JSON, Parquet o XML, o como archivos de volcado. Por ejemplo:

SELECT warehouse_id, quantity FROM inventories

Cuando el valor format type es json, se comprueba cada resultado de consulta y, si no es JSON, según se determina con la función: JSON_OBJECT_T.parse(), DBMS_CLOUD.EXPORT_DATA transforma la consulta para incluir la función JSON_OBJECT para convertir la fila en JSON. Consulte JSON_OBJECT en Oracle Database 19c SQL Language Reference o Oracle Database 23ai SQL Language Reference y JSON_OBJECT_T Object Type en Oracle Database 19c PL/SQL Packages and Types Reference o Oracle Database 23ai PL/SQL Packages and Types Reference para obtener más información.

Por ejemplo:

SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories)

operation_id

Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de exportación como el ID correspondiente en la vista USER_LOAD_OPERATIONS.

Notas de uso:

  • El valor del parámetro query que proporcione puede ser una consulta avanzada, si es necesario, como una consulta que incluya uniones o subconsultas.

  • Según el parámetro de formato especificado, DBMS_CLOUD.EXPORT_DATA muestra los resultados de la consulta especificada en el almacén de objetos en la nube o en una ubicación de directorio en formatos de archivo CSV, JSON, Parquet o XML.

    Consulte Exportación de datos al almacén de objetos como texto mediante DBMS_CLOUD.EXPORT_DATA y Exportación de datos a un directorio mediante DBMS_CLOUD.EXPORT_DATA para obtener más información sobre el uso de DBMS_CLOUD.EXPORT_DATA con archivos de salida CSV, JSON, Parquet o XML.

  • Para una salida CSV, JSON o XML, por defecto cuando un archivo generado contiene 10 MB de datos, se crea un nuevo archivo de salida. Sin embargo, si tiene menos de 10 MB de datos de resultados, puede tener varios archivos de salida, según el servicio de base de datos y el número de ECPU (OCPU si la base de datos utiliza OCPU) para la instancia de Autonomous Database.

    Consulte Nomenclatura de archivos para la salida de texto (CSV, JSON, Parquet o XML) para obtener más información.

    El tamaño de fragmento del archivo de salida por defecto es 10 MB para CSV, JSON o XML. Puede cambiar este valor con la opción maxfilesize del parámetro format. Consulte DBMS_CLOUD Opciones de formato del paquete para EXPORT_DATA para obtener más información.

  • Para la salida de Parquet, cada archivo generado tiene menos de 128 MB y se pueden generar varios archivos de salida. Sin embargo, si tiene menos de 128 MB de datos de resultados, puede tener varios archivos de salida según el servicio de base de datos y el número de ECPU (OCPU si la base de datos utiliza OCPU) para la instancia de Autonomous Database.

    Consulte Nomenclatura de archivos para la salida de texto (CSV, JSON, Parquet o XML) para obtener más información.

  • El formato de salida de parquet solo se puede utilizar con servicios de base de datos altos y medios para instancias de Autonomous Database en una infraestructura de Exadata dedicada.

Notas de uso de DBMS_CLOUD.EXPORT_DATA con salida a un directorio

  • El directorio proporcionado debe existir y debe estar conectado como usuario ADMIN o tener acceso WRITE al directorio.

  • DBMS_CLOUD.EXPORT_DATA no crea directorios.

  • El procedimiento no sobrescribe los archivos. Por ejemplo, si existe un archivo de volcado en file_uri_list, DBMS_CLOUD.EXPORT_DATA notifica un error como:

    ORA-31641: unable to create dump file  "/u02/exports/123.dmp"
    ORA-27038: created file already exists

Ejemplos

En el siguiente ejemplo, se muestra DBMS_CLOUD.EXPORT_DATA con el parámetro de formato type con el valor json:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
     );
   END;
/  

En el siguiente ejemplo, se muestra DBMS_CLOUD.EXPORT_DATA con el parámetro de formato type con el valor xml:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
     );
   END;
/

En el siguiente ejemplo, se muestra DBMS_CLOUD.EXPORT_DATA con el parámetro de formato type con el valor csv:

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
     );
   END;
/  

Procedimiento y función GET_OBJECT

Este procedimiento está sobrecargado. El formulario de procedimiento lee un objeto de Cloud Object Storage y lo copia en Autonomous Database. El formulario de función lee un objeto de Cloud Object Storage y devuelve un valor BLOB a Autonomous Database.

Sintaxis

DBMS_CLOUD.GET_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2 DEFAULT  NULL,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.GET_OBJECT(
       credential_name      IN VARCHAR2 DEFAULT NULL,
       object_uri           IN VARCHAR2,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL)
RETURN BLOB;

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

object_uri

URI de archivo o de objeto. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

directory_name

Nombre del directorio en la base de datos.

Pie 1

file_name

Especifica el nombre del archivo que se va a crear. Si no se ha especificado el nombre de archivo, este se toma desde después de la última barra inclinada del parámetro object_uri. Para casos especiales, por ejemplo, cuando el nombre de archivo contenga barras inclinadas, utilice el parámetro file_name.

startoffset

Desplazamiento, en bytes, desde donde comienza a leer el procedimiento.

endoffset

Desplazamiento, en bytes, hasta donde el procedimiento detiene la lectura.

compression

Especifica la compresión utilizada para almacenar el objeto. Cuando compression se define en ‘AUTO’, se descomprime el archivo (el valor ‘AUTO’ implica que el objeto especificado con object_uri se comprime con Gzip).

Nota a Pie de Página 1

Note:

Para ejecutar DBMS_CLOUD.GET_OBJECT con un usuario que no sea ADMIN, debe otorgar privilegios WRITE en el directorio a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de escritura a atpc_user:

GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;

Valores devueltos

El formulario de función lee del almacén de objetos y DBMS_CLOUD.GET_OBJECT devuelve BLOB.

Ejemplos

BEGIN 
   DBMS_CLOUD.GET_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
     directory_name => 'DATA_PUMP_DIR'); 
END;
/

Para leer datos de caracteres de un archivo del almacén de objetos:

SELECT to_clob(
     DBMS_CLOUD.GET_OBJECT(
       credential_name => 'OBJ_STORE_CRED',
       object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;

Para agregar una imagen almacenada en el almacén de objetos en un BLOB en la base de datos:


DECLARE
   l_blob BLOB := NULL;
BEGIN
   l_blob := DBMS_CLOUD.GET_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/

En este ejemplo, namespace-string es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

Función LIST_FILES

Esta función muestra los archivos del directorio especificado. Los resultados incluyen los nombres de archivo y metadatos adicionales sobre los archivos, como el tamaño de archivo en bytes, el registro de hora de creación y el registro de hora de la última modificación.

Sintaxis

DBMS_CLOUD.LIST_FILES (
	directory_name      IN VARCHAR2)
       RETURN TABLE;

Parámetros

parámetro Descripción

directory_name

Nombre del directorio en la base de datos.

Notas de uso

  • Para ejecutar DBMS_CLOUD.LIST_FILES con un usuario que no sea ADMIN, debe otorgar privilegios de lectura en el directorio a ese usuario.Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de lectura a atpc_user:

    GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
  • Esta es una función de tabla con pipeline con el tipo de retorno DBMS_CLOUD_TYPES.list_object_ret_t.

  • DBMS_CLOUD.LIST_FILES no obtiene el valor de total de control y devuelve NULL para este campo.

Ejemplo

Esta es una función con pipeline que devuelve una fila para cada archivo. Por ejemplo, utilice la siguiente consulta para utilizar esta función:

SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR');

OBJECT_NAME       BYTES   CHECKSUM      CREATED              LAST_MODIFIED
------------ ---------- ----------    ---------------------  ---------------------
cwallet.sso        2965               2018-12-12T18:10:47Z   2019-11-23T06:36:54Z

Función LIST_OBJECTS

Esta función muestra los objetos de la ubicación especificada en el almacén de objetos. Los resultados incluyen los nombres de objetos y metadatos adicionales sobre los objetos, como el tamaño, el total de control, el registro de hora de creación y el registro de hora de la última modificación.

Sintaxis

DBMS_CLOUD.LIST_OBJECTS (
       credential_name      IN VARCHAR2,
       location_uri         IN VARCHAR2)
   RETURN TABLE;

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

location_uri

URI de archivo o de objeto. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

Notas de uso

  • Según las capacidades del almacén de objetos, DBMS_CLOUD.LIST_OBJECTS no devuelve valores para determinados atributos y el valor de retorno para el campo es NULL en este caso.

    Todos los almacenes de objetos soportados devuelven valores para los campos OBJECT_NAME, BYTES y CHECKSUM.

    En la siguiente tabla se muestra el soporte para los campos CREATED y LAST_MODIFIED por almacén de objetos:

    Almacenamiento de Objetos CREATED LAST_MODIFIED
    Nativo de Oracle Cloud Infrastructure Devuelve el registro de hora Devuelve el registro de hora
    Swift de Oracle Cloud Infrastructure Devuelve NULL Devuelve el registro de hora
    Amazon S3 Devuelve NULL Devuelve el registro de hora
    Compatible con Amazon S3 Devuelve NULL Devuelve el registro de hora
    Azure Devuelve el registro de hora Devuelve el registro de hora
  • El valor del total de control es el total de control MD5. Es un número hexadecimal de 32 caracteres que se calcula en el contenido del objeto.

  • Esta es una función de tabla con pipeline con el tipo de retorno DBMS_CLOUD_TYPES.list_object_ret_t.

Ejemplo

Esta es una función con pipeline que devuelve una fila para cada objeto. Por ejemplo, utilice la siguiente consulta para utilizar esta función:

SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('OBJ_STORE_CRED', 
    'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');


OBJECT_NAME   BYTES              CHECKSUM                       CREATED         LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso   2965      2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z          

En este ejemplo, namespace-string es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

Procedimiento MOVE_OBJECT

Este procedimiento mueve un objeto de un cubo o carpeta de Cloud Object Storage a otro.

La carpeta o el cubo de origen y de destino pueden estar en el mismo proveedor del almacén de objetos en la nube o en otro diferente.

Cuando el origen y el destino están en distintos almacenes de objetos o tienen cuentas diferentes con el mismo proveedor de nube, puede proporcionar nombres de credenciales independientes para las ubicaciones de origen y destino.

El nombre de la credencial de origen también lo utiliza por defecto la ubicación de destino cuando no se proporciona el nombre de la credencial de destino.

Sintaxis

DBMS_CLOUD.MOVE_OBJECT (
    source_credential_name  IN  VARCHAR2 DEFAULT NULL,
    source_object_uri       IN  VARCHAR2,
    target_object_uri       IN  VARCHAR2,
    target_credential_name  IN  VARCHAR2 DEFAULT NULL
);

Parámetros

parámetro Descripción

source_credential_name

Nombre de la credencial para acceder a Cloud Object Storage de origen.

Si no proporciona un valor source_credential_name, credential_name se define en NULL.

source_object_uri

Especifica el URI, que apunta a la ubicación de carpeta o cubo de Object Storage de origen.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

target_object_uri

Especifica el URI del cubo o carpeta de Object Storage de destino, donde se deben mover los archivos.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

target_credential_name

Nombre de la credencial para acceder a la ubicación de almacenamiento de objetos en la nube de destino.

Si no proporciona un valor target_credential_name, target_object_uri se define en el valor source_credential_name.

Ejemplo

BEGIN 
DBMS_CLOUD.MOVE_OBJECT (
    source_credential_name => 'OCI_CRED',
    source_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
    target_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/

Procedimiento PUT_OBJECT

Este procedimiento está sobrecargado. En un formulario el procedimiento copia un archivo de Autonomous Database en Cloud Object Storage. En otro formulario, el procedimiento copia un valor BLOB de Autonomous Database en Cloud Object Storage.

Sintaxis

DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       contents             IN BLOB
       compression          IN VARCHAR2 DEFAULT  NULL);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

object_uri

URI de archivo o de objeto. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube.

directory_name

Nombre del directorio en Autonomous Database.

Pie 1

contents

Especifica el BLOB que se va a copiar de Autonomous Database en Cloud Object Storage.

file_name

Nombre del archivo en el directorio especificado.

compression

Especifica la compresión utilizada para almacenar el objeto.

Valor por defecto: NULL

Nota a Pie de Página 1

Note:

Para ejecutar DBMS_CLOUD.PUT_OBJECT con un usuario que no sea ADMIN, debe otorgar privilegios de lectura en el directorio a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de lectura a atpc_user:

GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;

Ejemplo

Para manejar los datos de BLOB después del procesamiento en la base de datos y, a continuación, almacenar los datos directamente en un archivo del almacén de objetos:

DECLARE
      my_blob_data BLOB;
BEGIN 
 /* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
     contents => my_blob_data)); 
END;
/

Notas de uso

Según su instancia de Cloud Object Storage, el tamaño del objeto que transfiera está limitado de la siguiente forma:

Servicio de almacenamiento de objetos en la nube Límite de tamaño de transferencia de objeto

Oracle Cloud Infrastructure Object Storage

50 GB

Amazon S3

5 GB

Azure Blob Storage

256 MB

Compatible con Amazon S3

Lo define el proveedor del almacén de objetos. Para obtener más información, consulte la documentación del proveedor.

El almacén de objetos de Oracle Cloud Infrastructure no permite escribir archivos en un cubo público sin proporcionar credenciales (Oracle Cloud Infrastructure permite a los usuarios descargar objetos de cubos públicos). Por lo tanto, debe proporcionar un nombre de credencial con credenciales válidas para almacenar un objeto en un cubo público de Oracle Cloud Infrastructure mediante PUT_OBJECT.

Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.

Procedimiento SYNC_EXTERNAL_PART_TABLE

Con este procedimiento se simplifica la actualización de una tabla particionada externa desde archivos de la nube. Ejecute este procedimiento siempre que se agreguen nuevas particiones o cuando se eliminen particiones del origen del almacén de objetos para la tabla particionada externa.

Sintaxis

DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
	table_name        IN VARCHAR2,
	schema_name       IN VARCHAR2 DEFAULT,
	update_columns    IN BOOLEAN DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla de destino. Es necesario crear la tabla de destino para ejecutar DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE.

schema_name

Nombre del esquema en el que reside la tabla de destino. El valor por defecto es NULL, lo que significa que la tabla de destino está en el mismo esquema que el usuario que ejecuta el procedimiento.

update_columns

Los nuevos archivos pueden introducir un cambio en el esquema. Las actualizaciones soportadas incluyen: nuevas columnas y columnas suprimidas. Actualizaciones a columnas existentes, por ejemplo, un cambio en el tipo de datos devuelve errores.

Valor por defecto: False

Procedimiento VALIDATE_EXTERNAL_PART_TABLE

Con este procedimiento se validan los archivos de origen para una tabla particionada externa, se genera información de log y se almacenan las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla de archivos incorrectos en Autonomous Database. El formulario sobrecargado permite utilizar el parámetro operation_id.

Sintaxis

DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
       table_name                 IN VARCHAR2,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
       table_name                 IN VARCHAR2,
       operation_id               OUT NUMBER,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

operation_id

Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS.

partition_name

Si se define, solo se validan las particiones específicas. Si no se especifica, lea todas las particiones de forma secuencial hasta que se alcance rowcount.

subpartition_name

Si se define, solo se validan una subpartición específica. Si no se especifica, lea de todas las particiones o subparticiones externas de forma secuencial hasta que se alcance rowcount.

schema_name

Nombre del esquema en el que reside la tabla externa. El valor por defecto es NULL, lo que significa que la tabla externa está en el mismo esquema que el usuario que ejecuta el procedimiento.

rowcount

Número de filas que se van a examinar. El valor por defecto es NULL, lo que significa que se examinan todas las filas de los archivos de origen.

partition_key_validation

Sólo para uso interno. No utilice este parámetro.

stop_on_error

Determina si la validación se debe parar cuando se rechaza una fila. El valor por defecto es TRUE, lo que significa que la validación se para en la primera fila rechazada. Al definir el valor en FALSE, se especifica que la validación no se para en la primera fila rechazada y se validan todas las filas hasta el valor especificado para el parámetro rowcount.

Procedimiento VALIDATE_EXTERNAL_TABLE

Este procedimiento valida los archivos de origen para una tabla externa, genera información de log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla de archivos incorrectos en Autonomous Database. El formulario sobrecargado permite utilizar el parámetro operation_id.

Sintaxis

DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
	table_name      IN VARCHAR2,
	schema_name     IN VARCHAR2 DEFAULT,		
	rowcount        IN NUMBER DEFAULT,
	stop_on_error   IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE(
	table_name      IN VARCHAR2,
	operation_id    OUT NOCOPY NUMBER,
	schema_name     IN VARCHAR2 DEFAULT NULL,		
	rowcount        IN NUMBER DEFAULT 0,
	stop_on_error   IN BOOLEAN DEFAULT TRUE);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

operation_id

Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS.

schema_name

Nombre del esquema en el que reside la tabla externa. El valor por defecto es NULL, lo que significa que la tabla externa está en el mismo esquema que el usuario que ejecuta el procedimiento.

rowcount

Número de filas que se van a examinar. El valor por defecto es NULL, lo que significa que se examinan todas las filas de los archivos de origen.

stop_on_error

Determina si la validación se debe parar cuando se rechaza una fila. El valor por defecto es TRUE, lo que significa que la validación se para en la primera fila rechazada. Al definir el valor en FALSE, se especifica que la validación no se para en la primera fila rechazada y se validan todas las filas hasta el valor especificado para el parámetro rowcount.

Si la tabla externa hace referencia a archivos Avro, ORC o Parquet, la validación se para en la primera fila rechazada.

Cuando la tabla externa especifica el parámetro format type definido en el valor avro, orc o parquet, el parámetro stop_on_error tiene siempre el valor TRUE. Por lo tanto, el archivo badfile de la tabla siempre estará vacío para una tabla externa que haga referencia a archivos de Avro, ORC o Parquet.

Notas de uso

  • DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE funciona tanto con tablas particionadas externas como con tablas particionadas híbridas. Esto lee potencialmente los datos de todas las particiones externas hasta que se alcance rowcount o se aplique stop_on_error. No tiene control sobre qué partición, o partes de una partición, se lee en qué orden.

Procedimiento VALIDATE_HYBRID_PART_TABLE

Con este procedimiento se validan los archivos de origen para una tabla particionada híbrida, se genera información de log y se almacenan las filas que no coinciden con las opciones de formato especificadas para la tabla híbrida en una tabla de archivos incorrectos en Autonomous Database. El formulario sobrecargado permite utilizar el parámetro operation_id.

Sintaxis

DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
       table_name                 IN VARCHAR2,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
       table_name                 IN VARCHAR2,
       operation_id               OUT NUMBER,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla externa.

operation_id

Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS.

partition_name

Si se define, solo se validan las particiones específicas. Si no se especifica, lea de todas las particiones externas de forma secuencial hasta que se alcance rowcount.

subpartition_name

Si se define, solo se validan una subpartición específica. Si no se especifica, lea de todas las particiones o subparticiones externas de forma secuencial hasta que se alcance rowcount.

schema_name

Nombre del esquema en el que reside la tabla externa. El valor por defecto es NULL, lo que significa que la tabla externa está en el mismo esquema que el usuario que ejecuta el procedimiento.

rowcount

Número de filas que se van a examinar. El valor por defecto es NULL, lo que significa que se examinan todas las filas de los archivos de origen.

partition_key_validation

Sólo para uso interno. No utilice este parámetro.

stop_on_error

Determina si la validación se debe parar cuando se rechaza una fila. El valor por defecto es TRUE, lo que significa que la validación se para en la primera fila rechazada. Al definir el valor en FALSE, se especifica que la validación no se para en la primera fila rechazada y se validan todas las filas hasta el valor especificado para el parámetro rowcount.