DBMS_CLOUD Subprogramas y API de REST

En esta sección se tratan los subprogramas y las API de REST de DBMS_CLOUD que se proporcionan con Autonomous Database.

Nota

Para ejecutar subprogramas DBMS_CLOUD con un usuario que no sea ADMIN, debe otorgar privilegios EXECUTE a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios a adb_user:
GRANT EXECUTE ON DBMS_CLOUD TO adb_user;

El paquete DBMS_CLOUD está formado por lo siguiente:

DBMS_CLOUD para la gestión de acceso

Los subprogramas para la gestión de credenciales en el paquete DBMS_CLOUD, incluidas la creación, la supresión y la actualización de credenciales.

Subprograma Descripción

CREATE_CREDENTIAL Procedure

Este procedimiento almacena credenciales del servicio en la nube en Autonomous Database.

DROP_CREDENTIAL Procedure

Este procedimiento elimina una credencial existente de Autonomous Database.

Procedimiento REFRESH_VAULT_CREDENTIAL

Este procedimiento refresca inmediatamente el secreto de almacén de una credencial de secreto de almacén para obtener la última versión del secreto de almacén para el credential_name especificado en Autonomous Database.

UPDATE_CREDENTIAL Procedure

Este procedimiento actualiza los atributos de las credenciales del servicio en la nube en Autonomous Database.

Procedimiento CREATE_CREDENTIAL

Este procedimiento almacena credenciales del servicio en la nube en Autonomous Database.

Utilice las credenciales de servicio en la nube almacenadas para acceder al servicio en la nube para la carga de datos, para consultar datos externos que residen en la nube o para otros casos cuando utilice los procedimientos DBMS_CLOUD con un parámetro credential_name. Este procedimiento está sobrecargado:

  • Utilice los parámetros relacionados con Oracle Cloud Infrastructure, que incluyen: user_ocid, tenancy_ocid, private_key y fingerprint, solo cuando utilice la autenticación de claves de firma de Oracle Cloud Infrastructure.

  • Utilice el parámetro params para una de las siguientes opciones:

    • Credenciales de nombres de recursos de Amazon (ARN)

    • Google Analytics o Google BigQuery credenciales

    • Credenciales de secreto de almacén para utilizarlas con un almacén soportado:

      • Oracle Cloud Infrastructure Vault
      • Azure Key Vault
      • AWS Secrets Manager
      • Gestor de secretos de GCP

Sintaxis

DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      username          IN VARCHAR2,
      password          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name IN VARCHAR2,
      user_ocid       IN VARCHAR2,
      tenancy_ocid    IN VARCHAR2,
      private_key     IN VARCHAR2,
      fingerprint     IN VARCHAR2);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name  IN VARCHAR2,
      params           IN CLOB DEFAULT);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial que se va a almacenar. El parámetro credential_name debe cumplir las convenciones de nomenclatura de objetos de Oracle, que no permiten espacios ni guiones.

username

Los argumentos username y password especifican conjuntamente las credenciales del servicio en la nube. Consulte las notas de uso para saber qué se debe especificar para username y password para diferentes servicios en la nube.

password

Los argumentos username y password especifican conjuntamente las credenciales del servicio en la nube.

user_ocid

Especifica el OCID del usuario. Consulte Dónde obtener el OCID del arrendamiento y el OCID del usuario para obtener más información sobre cómo obtener el OCID del usuario.

tenancy_ocid

Especifica el OCID del arrendamiento. Consulte Dónde obtener el OCID del arrendamiento y el OCID del usuario para obtener más información sobre cómo obtener el OCID del arrendamiento.

private_key

Especifica la clave privada generada. Las claves privadas generadas con una frase de contraseña no están soportadas. Debe generar la clave privada sin una frase de contraseña. Consulte Cómo generar una clave de firma de API para obtener más información sobre la generación de un par de claves en formato PEM.

fingerprint

Especifica una huella. Después de cargar una clave pública generada en la cuenta del usuario, se muestra la huella en la consola. Utilice la huella mostrada para este argumento. Consulte Cómo obtener la huella de la clave y Cómo generar una clave de firma de API para obtener más información.

params

Especifica los parámetros de credenciales para uno de los siguientes:

  • Credenciales de nombres de recursos de Amazon (ARN)

  • Google Analytics o Google BigQuery credenciales

  • Credenciales del secreto de almacén para su uso con credenciales de nombre de usuario/tipo de contraseña donde se almacena la contraseña en un almacén soportado:

    • Oracle Cloud Infrastructure Vault

    • Azure Key Vault

    • AWS Secrets Manager

    • Gestor de secretos de GCP

    Para crear una credencial de secreto de almacén, debe tener el privilegio EXECUTE en el paquete DBMS_CLOUD.

Notas de Uso

  • Esta operación almacena las credenciales en la base de datos en un formato cifrado.

  • Puede ver las credenciales en el esquema consultando la tabla user_credentials.

  • El usuario ADMIN puede ver todas las credenciales consultando la tabla dba_credentials.

  • Solo tiene que crear credenciales una vez, a menos que cambien las credenciales del servicio en la nube. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para los procedimientos DBMS_CLOUD que requieren un parámetro credential_name.

  • Este procedimiento está sobrecargado. Si proporciona uno de los atributos de autenticación basados en clave, user_ocid, tenancy_ocid, private_key o fingerprint, se asume que la llamada es una credencial basada en clave de firma de Oracle Cloud Infrastructure.

  • Puede mostrar las credenciales de la vista ALL_CREDENTIALS. Por ejemplo, ejecute el siguiente comando para mostrar las credenciales:

    SELECT credential_name, username, comments FROM all_credentials;

Credenciales de Oracle Cloud Infrastructure (tokens de autenticación)

Para Oracle Cloud Infrastructure, username es el nombre de usuario de Oracle Cloud Infrastructure. password es el token de autenticación de Oracle Cloud Infrastructure. Consulte Trabajar con token de autenticación.

Por ejemplo:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DEF_CRED_NAME',
    username => 'adb_user@example.com',
    password => 'password' );
END;
/

Utilice credenciales basadas en token de autenticación al autenticar llamadas a OCI Object Storage. Para las llamadas a cualquier otro tipo de servicio en la nube de Oracle Cloud Infrastructure, utilice las credenciales basadas en claves de firma de Oracle Cloud Infrastructure.

Credenciales basadas en claves de firma de Oracle Cloud Infrastructure

Utilice los parámetros relacionados con la clave de firma de Oracle Cloud Infrastructure, que incluyen: user_ocid, tenancy_ocid, private_key y fingerprint, con la autenticación de claves de firma de Oracle Cloud Infrastructure.

Por ejemplo:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/

Las claves privadas generadas con una frase de contraseña no están soportadas. Debe generar la clave privada sin una frase de contraseña. Consulte Cómo generar una clave de firma de API para obtener más información.

Credenciales de Oracle Cloud Infrastructure Object Storage Classic

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage Classic, username es el nombre de usuario de Oracle Cloud Infrastructure Classic, y password es la contraseña de Oracle Cloud Infrastructure Classic.

Credenciales de Amazon Web Services (AWS)

Si los archivos de origen residen en Amazon S3 o llama a una API de AWS, username es el identificador de clave de acceso de AWS, y password es la clave de acceso secreta de AWS. Consulte AWS Identity and Access Management.

Credenciales de Microsoft Azure

Si los archivos de origen residen en Azure Blob Storage o va a llamar a una API de Azure, username es el nombre de su cuenta de almacenamiento de Azure, y password es una clave de acceso de cuenta de almacenamiento de Azure. Consulte la sección acerca de las cuentas de almacenamiento de Azure.

Credenciales compatibles con Amazon S3

Service Información de credenciales

Oracle Cloud Infrastructure (claves secretas de cliente)

Si los archivos de origen residen en Oracle Cloud Infrastructure, debe utilizar claves secretas de cliente con URL compatibles con S3. Consulte Trabajar con claves secretas de cliente para obtener más información.

Google Cloud Storage

Si sus archivos de origen residen en Google Cloud Storage o va a llamar a las API de Google Cloud Storage, debe definir un proyecto de Google por defecto y obtener una clave HMAC para crear credenciales que proporcionar con URL compatibles con S3 de Google Cloud Storage. Utilice el identificador de clave HMAC como nombre de usuario, y el secreto HMAC como contraseña.

Consulte la sección sobre proyectos y la sección sobre claves HMAC para obtener más información.

Wasabi Hot Cloud Storage

Si los archivos de origen residen en Wasabi Hot Cloud Storage o va a llamar a las API de Wasabi Hot Cloud Storage, necesita las claves de acceso para crear credenciales y proporcionarlas con URL compatibles con S3. Utilice la clave de acceso de Wasabi Hot Cloud Storage como nombre de usuario, y la clave secreta de Wasabi Hot Cloud Storage como contraseña.

Consulte la sección sobre creación de un juego de claves de acceso de API de Wasabi para obtener más información.

Credenciales de nombres de recursos de Amazon (ARN) de AWS

Si los archivos de origen residen en Amazon S3 o llama a una API de AWS, utilice params para especificar los parámetros para los nombres de recursos de Amazon (ARN).

parámetro Valor
aws_role_arn

Especifica el nombre de recurso de Amazon (ARN) que identifica el rol de AWS.

Si este parámetro no se proporciona al crear la credencial, se emite ORA-20041.

external_id_type

Puede definir external_id_type para utilizar el OCID del compartimento de Autonomous Database, el OCID de la base de datos o el OCID del arrendamiento proporcionando uno de los siguientes valores: compartment_ocid, database_ocid o tenant_ocid.

Si este parámetro no se proporciona al crear la credencial, el valor por defecto es database_ocid.

Por ejemplo:

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name      => 'MY_CRED',
        params               => JSON_OBJECT(
               'aws_role_arn'      value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
               'external_id_type'  value 'database_ocid'));
END;
/

Token de acceso personal de GitHub

Si los archivos de origen residen en un repositorio GitHub o llama a una API GitHub, username es el correo electrónico GitHub y password es el token de acceso personal GitHub. Consulte Creación de un Token de Acceso Personal para obtener más información.

Por ejemplo:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MY_GITHUB_CRED',
    username => 'user@example.com',
    password => 'your_personal_access_token' );
END;
/

Google Analytics o Google BigQuery Credenciales

Si accede a Google Analytics o Google BigQuery, utilice el parámetro params para especificar los parámetros de credenciales de Google OAuth 2.0.

parámetro Valor
gcp_oauth2

Especifica el acceso a OAuth 2.0 para Google Analytics o Google BigQuery con un objeto JSON que incluye los siguientes parámetros y sus valores:

  • client_id: consulte la consola de API de Google para obtener el ID de cliente.

  • client_secret: consulte la consola de API de Google para obtener el secreto de cliente.

  • refresh_token: un token de refrescamiento permite a la aplicación obtener nuevos tokens de acceso.

Consulte Uso de OAuth 2.0 para acceder a las API de Google para obtener más información sobre las credenciales de Google OAuth.

Por ejemplo:

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'GOOGLE_BIGQUERY_CRED',
      params => JSON_OBJECT('gcp_oauth2' value 
                                  JSON_OBJECT(
                                       'client_id'     value 'client_id',
                                       'client_secret' value 'client_secret',
                                       'refresh_token' value 'refresh_token' )));
END;
/

Credenciales de secreto de almacén con Oracle Cloud Infrastructure Vault

Para crear credenciales de secreto de almacén con Oracle Cloud Infrastructure Vault, utilice el parámetro params para especificar los parámetros necesarios:

  • username: especifica el nombre de usuario de cualquier tipo de credencial de nombre de usuario/contraseña, como el nombre de usuario de la contraseña de OCI Swift. Por ejemplo, si tiene una credencial Swift con el nombre de usuario "scott" y la contraseña "password", proporcione "scott" como parámetro username.

  • secret_id: es el ID secreto del almacén. Especifique el valor secret_id como OCID secreto de almacén. Consulte Descripción general de Vault para obtener más información.

  • region: es un parámetro opcional que especifica el identificador de región de oracle cloud. La región, cuando se especifica, indica la ubicación donde se encuentra el secreto de Oracle Cloud Infrastructure Vault.

    Por defecto, CREATE_CREDENTIAL utiliza el valor region asignado desde la clave de región en secret_id. Un ejemplo de región es us-ashburn-1.

    Consulte Regiones y dominios de disponibilidad para obtener una lista completa de regiones.

Por ejemplo:

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OCI_SECRET_CRED',
    params => JSON_OBJECT( 
                'username'   value 'scott',
                'region'     value 'us-ashburn-1',
                'secret_id'  value 'ocid1.vaultsecret.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa'));
END;
/

Notas sobre el uso de un secreto de Oracle Cloud Infrastructure Vault para almacenar secretos de almacén:

  • Al utilizar una instancia de Oracle Cloud Infrastructure Vault, en la instancia de Autonomous Database debe activar la autenticación de principal con DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.
  • En Oracle Cloud Infrastructure, debe especificar una política para que la entidad de recurso acceda al secreto.

Para crear una credencial de secreto de almacén, debe tener el privilegio EXECUTE en el paquete DBMS_CLOUD.

Credenciales secretas de almacén con Azure Key Vault

Para crear credenciales de Azure Key Vault, utilice el parámetro params para especificar los parámetros necesarios:

  • username: especifica el nombre de usuario asociado con la clave.

  • secret_id: especifica el nombre del secreto.

  • azure_vault_name: especifica el nombre del almacén donde se encuentra el secreto.

Consulte Creación de un almacén de claves para obtener más información.

Para crear una credencial de secreto de almacén, debe tener el privilegio EXECUTE en el paquete DBMS_CLOUD.

Credenciales de secreto de almacén con Gestor de secretos de AWS

Para crear credenciales de secreto de almacén con Gestor de secretos de AWS, utilice el parámetro params para especificar los parámetros necesarios:

  • username: especifica la clave de acceso de Gestor de secretos de AWS.

  • secret_id: es el ARN de AWS AWS Secrets Manager.

  • region: (opcional) especifica la región de servicio de AWS donde se encuentran el almacén y el secreto. Un ejemplo de la región de AWS es "us-east-2". El valor por defecto region es la región especificada con el ARN en el parámetro secret_id.

    Consulte Gestión de regiones de AWS para obtener más información.

    Para crear una credencial de secreto de almacén, debe tener el privilegio EXECUTE en el paquete DBMS_CLOUD.

Credenciales de secreto de almacén con el gestor de secretos de GCP

Para crear credenciales del gestor de secretos de GCP, utilice el parámetro params para especificar los parámetros necesarios:

  • username: especifica el nombre de usuario asociado al secreto.

  • secret_id: es el nombre del secreto.

  • gcp_project_id: especifica el ID del proyecto en el que se encuentra el secreto.

Consulte Gestor de secretos para obtener más información.

Para crear una credencial de secreto de almacén, debe tener el privilegio EXECUTE en el paquete DBMS_CLOUD.

Procedimiento DROP_CREDENTIAL

Este procedimiento elimina una credencial existente de Autonomous Database.

Sintaxis

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial que se va a eliminar.

Procedimiento REFRESH_VAULT_CREDENTIAL

Este procedimiento refresca el secreto de almacén de una credencial de secreto de almacén.

Este procedimiento permite refrescar inmediatamente el secreto de almacén de una credencial de secreto de almacén para obtener la versión más reciente del secreto de almacén para el credential_name especificado.

Sintaxis

DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL (
    credential_name   IN VARCHAR2);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial que se va a refrescar.

Notas de Uso

  • El usuario ADMIN puede ver todas las credenciales consultando la tabla dba_credentials.

  • Puede mostrar las credenciales de la vista ALL_CREDENTIALS. Por ejemplo, ejecute el siguiente comando para mostrar las credenciales:

    SELECT credential_name, username, comments FROM all_credentials;

Ejemplo

BEGIN
  DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL(
     credential_name => 'AZURE_SECRET_CRED'); 
END;
/

UPDATE_CREDENTIAL Procedure

Este procedimiento actualiza un atributo con un nuevo valor para un credential_name especificado.

Utilice las credenciales almacenadas para la carga de datos, para consultar datos externos que residan en la nube o dondequiera que utilice procedimientos DBMS_CLOUD con un parámetro credential_name.

Sintaxis

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial que se va a actualizar.

attribute

Nombre del atributo que se va a actualizar.

Para una credencial de nombre de usuario/contraseña, los valores válidos de attribute son: USERNAME y PASSWORD.

Para una credencial para un ARN de Amazon, los valores válidos de attribute son: aws_role_arn y external_id_type.

Para una credencial para Google BigQuery o Google Analytics, los valores válidos de attribute son: client_id, client_secret y refresh_token.

Según el almacén que esté utilizando, para las credenciales de secreto de almacén, los valores attribute válidos son:
  • Oracle Cloud Infrastructure Vault: secret_id, region

  • Azure Key Vault: secret_id, azure_vault_name

  • Gestor de secretos de AWS: secret_id, region

  • Gestor de secretos de GCP: secret_id, gcp_project_id

Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

value

Nuevo valor para el atributo especificado.

Notas de Uso

  • El valor de nombre de usuario es sensible a mayúsculas y minúsculas. No puede contener comillas dobles ni espacios.

  • El usuario ADMIN puede ver todas las credenciales consultando dba_credentials.

  • Solo tiene que crear credenciales una vez, a menos que cambien las credenciales del servicio en la nube. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para los procedimientos DBMS_CLOUD que requieren un parámetro credential_name.

  • Puede mostrar las credenciales de la vista ALL_CREDENTIALS. Por ejemplo, ejecute el siguiente comando para mostrar las credenciales:

    SELECT credential_name, username, comments FROM all_credentials;

Ejemplos

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'OBJ_STORE_CRED',
     attribute => 'PASSWORD',
     value => 'password'); 
END;
/
BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'ARN_CRED',
     attribute => 'aws_role_arn',
     value => 'NEW_AWS_ARN'); 
END;
/

DBMS_CLOUD para objetos y archivos

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

Subprograma Descripción

COPY_COLLECTION Procedure

Con este procedimiento, se cargan datos en una recopilación SODA existente desde Cloud Object Storage o desde archivos de un directorio.

COPY_DATA Procedure

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 en los de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database.
Procedimiento CREATE_CLOUD_TABLE

Con este procedimiento se crea una tabla en la nube donde todos los datos persistentes se almacenan en el almacenamiento de objetos gestionado por Oracle.

CREATE_EXTERNAL_TABLE Procedimiento para Apache Iceberg

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

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.

CREATE_EXTERNAL_PART_TABLE Procedimiento

Con este procedimiento se crea una tabla particionada externa en los archivos de la nube. 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.

CREATE_HYBRID_PART_TABLE Procedimiento

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.

DELETE_FILE Procedure

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

DELETE_OBJECT Procedure

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

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 o mediante el controlador de acceso ORACLE_DATAPUMP para escribir datos en un archivo de volcado.

GET_OBJECT Procedimiento y función

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.

LIST_FILES Function

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.

LIST_OBJECTS Function

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

Con este procedimiento se mueve un objeto de un cubo de Cloud Object Storage a otro.

PUT_OBJECT Procedure

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.

SYNC_EXTERNAL_PART_TABLE Procedimiento

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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

Este parámetro no se utiliza cuando se especifica 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 de los URI de archivo de origen de Cloud.

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

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 DBMS_CLOUD Formato de URI.

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

Directory

Puede especificar un directorio y uno o más nombres de archivo o utilizar una lista separada por comas de directorios y nombres de archivo. 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 es sensible a mayúsculas/minúsculas. El nombre del archivo distingue mayúsculas.

Las expresiones regulares no están soportadas al especificar los nombres de archivo en un directorio. Solo puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres y 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 de directorios separada por comas: 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 comilla, 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, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays, 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 DBMS_CLOUD Opciones de formato de paquete.

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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

Este parámetro no se utiliza cuando se especifica un directorio con file_uri_list.

file_uri_list

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

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

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 DBMS_CLOUD Formato de URI.

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

Directorio

Puede especificar un directorio y uno o más nombres de archivo o utilizar una lista separada por comas de directorios y nombres de archivo. 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 es sensible a mayúsculas/minúsculas. El nombre del archivo distingue mayúsculas.

Las expresiones regulares no están soportadas al especificar los nombres de archivo en un directorio. Solo puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres y 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 de directorios separada por comas: 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 comilla, 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, lo que significa que los campos y sus tipos de dato están determinados por la definición de tabla de destino. 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 sobre field_list, consulte Oracle® Database 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 de los archivos de origen, log y erróneos. Para obtener una lista de las opciones y cómo especificar los valores, consulte DBMS_CLOUD Package Format Options.

Para obtener información sobre las opciones de formato de archivo Avro, ORC o Parquet, consulte DBMS_CLOUD Opciones de formato del paquete 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.

Nota 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 automáticamente como separador 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 DBMS_CLOUD Package Format Options para obtener información sobre la opción de formato recorddelmiter.

Ejemplo

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

    DBMS_CLOUD.COPY_COLLECTION(
            table_name      => 'ORDERS',
            schema_name     => 'TEST_SCHEMA',
            credential_name => 'OBJ_STORE_CRED',
	     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 de 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

Este parámetro no se utiliza cuando se especifica 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 de los URI de archivo de origen de Cloud.

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

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 DBMS_CLOUD Formato de URI.

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

Directory

Puede especificar un directorio y uno o más nombres de archivo o utilizar una lista separada por comas de directorios y nombres de archivo. 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 es sensible a mayúsculas/minúsculas. El nombre del archivo distingue mayúsculas.

Las expresiones regulares no están soportadas al especificar los nombres de archivo en un directorio. Solo puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres y 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 de directorios separada por comas: 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 comilla, 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 Package ORC to Oracle Data Type Mapping.

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

Para los archivos Avro, consulte DBMS_CLOUD Package Avro to Oracle Data Type Mapping 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 DBMS_CLOUD Opciones de formato de paquete 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. Each load operation adds a record to dba[user]_load_operations that indicates the table containing the logs.

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

  • Para Avro, ORC o Parquet, si 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 destino pueden estar en el mismo proveedor de almacenamiento de objetos en la nube o en otro diferente.

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

La ubicación de destino también utiliza por defecto el nombre de la credencial de origen 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 al almacenamiento de objetos en la nube de origen.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 la carpeta o el cubo de Object Storage de origen.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats 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 DBMS_CLOUD URI Formats 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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_CLOUD_TABLE

Con este procedimiento se crea una tabla en la nube. Todos los datos de la tabla en la nube se almacenan en el almacenamiento de objetos gestionado por Oracle (las tablas en la nube solo almacenan sus metadatos en la base de datos).

Sintaxis

DBMS_CLOUD.CREATE_CLOUD_TABLE (
    table_name       IN VARCHAR2,
    column_list      IN CLOB,
    params           IN CLOB);

Parámetros

parámetro Descripción

table_name

Nombre de la tabla en la nube.

column_list

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

Notas de Uso

  • Atributos DEFAULT: column_list puede incluir la cláusula DEFAULT, que funciona como la cláusula DEFAULT en un CREATE TABLE normal. Consulte CREATE TABLE para obtener información sobre el comportamiento de la cláusula DEFAULT.

  • Utilice DROP TABLE para borrar una tabla en la nube. Las tablas en la nube no soportan la papelera de reciclaje.

    Por ejemplo:

    DROP TABLE CLOUD_TAB1; 
  • Puede otorgar privilegios SELECT, INSERT y UPDATE para una tabla en la nube. No se pueden otorgar otros privilegios a una tabla en la nube.

    Consulte Configuring Privilege and Role Authorization para obtener más información.

Ejemplos

EXEC DBMS_CLOUD.CREATE_CLOUD_TABLE( 'CLOUD_TAB1', 'I INTEGER, J INTEGER' );
BEGIN
  DBMS_CLOUD.CREATE_CLOUD_TABLE(
   table_name  => 'CLOUD_TABLE_WITH_DEFAULT',
   column_list => 'I INTEGER,
                   A VARCHAR2(32) DEFAULT ''ABC''' );
END;
/

CREATE_EXTERNAL_PART_TABLE Procedimiento

Con este procedimiento se crea una tabla particionada externa en archivos de la nube o desde 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 de los URI de archivo de origen de Cloud.

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

Esta opción solo está soportada con tablas externas que se crean 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 DBMS_CLOUD URI Formats para obtener más información.

Consulte Condición REGEXP_LIKE 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, 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. Para obtener más información sobre field_list, consulte Oracle® Database 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 los archivos Avro, ORC o Parquet, la opción partition_columns incluye el nombre de columna, la subcláusula name y el tipo de datos 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 se basan en el formato de subdivisión, el orden de las columnas especificadas partition_columns debe coincidir con el orden en el que aparecen en el nombre del 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 DBMS_CLOUD Opciones de formato de paquete.

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

    • Almacenamiento de bloques de Azure

    • Amazon S3

    • Compatible con Amazon S3, incluidos: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage y Wasabi Hot Cloud Storage.

    • GitHub Repositorio

    Consulte DBMS_CLOUD URI Formats 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 automáticamente como separador 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 DBMS_CLOUD Package Format Options 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

Con este procedimiento se crea una tabla externa en archivos de la nube o a partir 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 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

Este parámetro no se utiliza cuando se especifica 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 de los URI de archivo de origen de Cloud.

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

Esta opción solo está soportada con tablas externas que se crean 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 DBMS_CLOUD Formato de URI.

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

Directorio

Puede especificar un directorio y uno o más nombres de archivo o utilizar una lista separada por comas de directorios y nombres de archivo. 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 es sensible a mayúsculas/minúsculas. El nombre del archivo distingue mayúsculas.

Las expresiones regulares no están soportadas al especificar los nombres de archivo en un directorio. Solo puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres y 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 de directorios separada por comas: 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 comilla, 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 NULL, 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 de Oracle Database 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 DBMS_CLOUD Package Format Options.

Para los archivos de formato Avro, ORC o Parquet, consulte CREATE_EXTERNAL_TABLE Procedimiento 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, incluidos:

    • Oracle Cloud Infrastructure Object Storage

    • Almacenamiento de bloques de Azure

    • Amazon S3

    • Compatible con Amazon S3, incluidos: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage y Wasabi Hot Cloud Storage.

    • GitHub Repositorio

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

    Consulte DBMS_CLOUD URI Formats 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 automáticamente como separador 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 DBMS_CLOUD Package Format Options 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.

Para obtener una descripción de las configuraciones admitidas, consulte Acerca de la consulta de tablas Apache Iceberg.

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 nombres de recursos de Amazon (ARN) de AWS.

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 que se encuentran en los archivos de datos subyacentes (Parquet, Avro, ORC). Los tipos de datos de Oracle se derivan mediante las asignaciones de Parquet/Avro/ORC entre Iceberg y los tipos de datos de 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, AWS u OCI, 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.

Para obtener ejemplos y más información: consulte los siguientes ejemplos, Soporte de Iceberg en ejemplos de OCI Data Flow, Formatos de URI DBMS_CLOUD.

Ejemplo de tablas de AWS Iceberg con un catálogo de AWS Glue

El parámetro format al crear tablas en una tabla de AWS Iceberg mediante un catálogo de AWS Glue es el siguiente:

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.

Ejemplo de tabla de AWS Iceberg mediante un URI de archivo de metadatos

El parámetro format al crear tablas en una tabla de AWS Iceberg mediante un URI de archivo de metadatos es el siguiente:
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')

Ejemplo de tabla de OCI Iceberg mediante el catálogo HadoopCatalog

El parámetro format al crear tablas en una tabla de OCI Iceberg creada por OCI Data Flow mediante el catálogo HadoopCatalog es el siguiente:
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 utilizada al generar la tabla, en formato URI nativo.
    • iceberg_table_path: ruta de acceso database_name.table name utilizada al crear la tabla.

Ejemplo de tabla OCI Iceberg mediante el URI del archivo de metadatos

El parámetro format al crear tablas en una tabla de OCI Iceberg mediante el URI del archivo de metadatos es el siguiente:
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 de la siguiente manera:
  • protocol_type: debe ser 'iceberg'

Procedimiento CREATE_EXTERNAL_TABLE 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

Este parámetro no se utiliza cuando se especifica 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 de los URI de archivo de origen de Cloud.

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

Esta opción solo está soportada con tablas externas que se crean 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 DBMS_CLOUD Formato de URI.

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

Directory

Puede especificar un directorio y uno o más nombres de archivo o utilizar una lista separada por comas de directorios y nombres de archivo. 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 es sensible a mayúsculas/minúsculas. El nombre del archivo distingue mayúsculas.

Las expresiones regulares no están soportadas al especificar los nombres de archivo en un directorio. Solo puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres y 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 de directorios separada por comas: 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 comilla, 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 los encontrados 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 DBMS_CLOUD Asignación de tipo de datos de Parquet a Oracle.

Para los archivos ORC, consulte DBMS_CLOUD Package ORC to Oracle Data Type Mapping para obtener información.

Para los archivos de Avro, consulte DBMS_CLOUD Asignación de tipo de datos de Avro a Oracle 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 DBMS_CLOUD Package ORC to Oracle Data Type Mapping

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

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

format

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

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 DBMS_CLOUD Asignación de nombres de columna de Avro, ORC y Parquet a Oracle en el paquete 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.

Consulte Configuración de políticas y roles para acceder a recursos para obtener más información.

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 URI Formats 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 admitidas son:

refresh_rate: especifica la frecuencia en minutos con la que se refresca el índice local. Las nuevas cargas y supresiones de archivos dan como resultado un refrescamiento del í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 de 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 irrelevantes mediante los siguientes métodos:

  • Matriz de 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;
/

CREATE_HYBRID_PART_TABLE Procedimiento

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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 de los URI de archivo de origen de Cloud.

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

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 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, 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. Para obtener más información sobre field_list, consulte Oracle® Database 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 DBMS_CLOUD Package Format Options.

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, incluidos:

    • Oracle Cloud Infrastructure Object Storage

    • Almacenamiento de bloques de Azure

    • Amazon S3

    • Compatible con Amazon S3, incluidos: Oracle Cloud Infrastructure Object Storage, Google Cloud Storage y Wasabi Hot Cloud Storage.

    • GitHub Repositorio

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

    Consulte DBMS_CLOUD URI Formats 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.

Nota 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").

DELETE_FILE Procedure

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.

Nota

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 adb_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;

Ejemplo

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

DELETE_OBJECT Procedure

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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 DBMS_CLOUD Formato de URI.

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 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 o mediante el controlador de acceso ORACLE_DATAPUMP para escribir datos en un archivo de volcado de Oracle Datapump.

Sintaxis

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

DBMS_CLOUD.EXPORT_DATA (
      file_uri_list     IN CLOB DEFAULT NULL,
      format            IN CLOB DEFAULT NULL,
      credential_name   IN VARCHAR2 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

file_uri_list

Hay diferentes formas, según el valor del parámetro format y según si incluye un parámetro de credencial:
  • Cuando el valor del parámetro format type se json: el JSON del almacén de objetos o de la ubicación de directorio especificada se guarda con un nombre de archivo generado basado en el valor del parámetro file_uri_list. Consulte Nombre de archivo para salida de texto (CSV, JSON, Parquet o XML) para obtener más información.

  • 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. file_uri_list no soporta el uso de caracteres comodín y de sustitución.

  • Cuando no se especifica el parámetro credential_name, 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 DBMS_CLOUD Formato de URI.

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

Para obtener información con el valor de formato type datapump, consulte Filtros de datos de exportación de Oracle Data Pump y Cómo descargar y cargar datos con el controlador de acceso ORACLE_DATAPUMP para obtener más información.

Cuando el valor format type es json, cada resultado de consulta se comprueba 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 que incluya la función JSON_OBJECT con el fin de convertir la fila en JSON. Consulte Tipo de objeto JSON_OBJECT_T 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 con uno de estos formatos:

  • Para la 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 Nombre de archivo para 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 Package Format Options for 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 Nombre de archivo para salida de texto (CSV, JSON, Parquet o XML) para obtener más información.

Notas de uso para la salida de ORACLE_DATAPUMP (DBMS_CLOUD.EXPORT_DATA con el parámetro format opción type opción datapump):

  • EXPORT_DATA utiliza DATA_PUMP_DIR como directorio de registro por defecto. Por lo tanto, el privilegio de escritura en DATA_PUMP_DIR es necesario cuando se utiliza la salida ORACLE_DATAPUMP.

  • La exportación de Autonomous Database mediante DBMS_CLOUD.EXPORT_DATA con el parámetro format, opción type datapump solo soporta almacenes de objetos o salida de directorio de Oracle Cloud Infrastructure Object Storage, Oracle Cloud Infrastructure Object Storage Classic.

  • Al especificar DBMS_CLOUD.EXPORT_DATA con la opción datapump del parámetro format type, el valor del parámetro credential_name no puede ser una entidad de recurso de OCI.

  • Oracle Data Pump divide cada parte del archivo de volcado en fragmentos más pequeños para cargas más rápidas. La consola de Oracle Cloud Infrastructure Object Storage muestra varios archivos para cada parte del archivo de volcado que exporte. El tamaño de los archivos de volcado reales se mostrará como cero (0) y sus fragmentos de archivo relacionados como 10 MB o menos. Por ejemplo:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    Al descargar el archivo de volcado de cero bytes desde la consola de Oracle Cloud Infrastructure o mediante la CLI de Oracle Cloud Infrastructure, no obtendrá todos los archivos de volcado. Para descargar todos los archivos de volcado del almacén de objetos, utilice una herramienta que soporte Swift, como curl, y proporcione su conexión de usuario y token de autenticación Swift.
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp

    Si importa un archivo con los procedimientos DBMS_CLOUD que soporten el parámetro format type con el valor 'datapump', solo debe proporcionar el nombre de archivo principal. Los procedimientos que admiten el tipo de formato 'datapump' detectan y descartan automáticamente los fragmentos.

    Al utilizar DBMS_CLOUD.DELETE_OBJECT, el procedimiento detecta y suprime automáticamente los fragmentos cuando el procedimiento suprime el archivo principal.

  • El procedimiento DBMS_CLOUD.EXPORT_DATA crea los archivos de volcado a partir de los valores file_uri_list que especifique, de la siguiente manera:

    • A medida que se necesitan más archivos, con el procedimiento se crean archivos adicionales de file_uri_list.

    • El procedimiento no sobrescribe los archivos. Si existe un archivo de volcado en file_uri_list, DBMS_CLOUD.EXPORT_DATA notifica un error.

    • DBMS_CLOUD.EXPORT_DATA no crea cubos.

  • El número de archivos de volcado que genera DBMS_CLOUD.EXPORT_DATA se determina cuando se ejecuta el procedimiento. El número de archivos de volcado que se generan depende del número de nombres de archivo que proporcione en el parámetro file_uri_list, así como del número de OCPU de Autonomous Database disponibles para la instancia, el nivel de servicio y el tamaño de los datos.

    Por ejemplo, si utiliza una instancia de Autonomous Database de 1 OCPU o el servicio low, se exporta un único archivo de volcado sin paralelismo, incluso si proporciona varios nombres de archivo. Si utiliza una instancia de Autonomous Database de 4 OCPU con el servicio medium o high, los trabajos se pueden ejecutar en paralelo y se exportan varios archivos de volcado si proporciona varios nombres de archivo.

  • Los archivos de volcado que cree con DBMS_CLOUD.EXPORT_DATA no se pueden importar mediante impdp de Oracle Data Pump. Según la base de datos, puede utilizar estos archivos de la siguiente forma:

    • En una instancia de Autonomous Database, puede utilizar los archivos de volcado con los procedimientos DBMS_CLOUD que admiten el parámetro format type con el valor 'datapump'. Puede importar los archivos de volcado mediante DBMS_CLOUD.COPY_DATA o puede llamar a DBMS_CLOUD.CREATE_EXTERNAL_TABLE para crear una tabla externa.

    • En cualquier otra instancia de Oracle Database, como Oracle Database 19c local, puede importar los archivos de volcado creados con el procedimiento DBMS_CLOUD.EXPORT_DATA mediante el controlador de acceso ORACLE_DATAPUMP. Consulte Descarga y carga de datos con el controlador de acceso ORACLE_DATAPUMP para obtener más información.

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

Notas de uso para 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 datapump:

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.dmp',
      format => json_object('type' value 'datapump', 'compression' value 'basic', 'version' value 'latest'),
      query => 'SELECT warehouse_id, quantity FROM inventories'
     );
   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.

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, 'encryption' value ('user_defined_function' value 'ADMIN.decryption_callback')));
     );
   END;
/  

En el siguiente ejemplo, se muestra la exportación de datos de DBMS_CLOUD.EXPORT_DATA a una ubicación de directorio con el parámetro type con el valor datapump:

BEGIN
 DBMS_CLOUD.EXPORT_DATA(
    file_uri_list => 'export_dir:sales.dmp',
    format        => json_object('type' value 'datapump'),
    query         => 'SELECT * FROM sales'
 );
END;
/

GET_OBJECT Procedimiento y función

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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 DBMS_CLOUD Formato de URI.

directory_name

Nombre del directorio en la base de datos.

Foot 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

Nota

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 adb_user:

GRANT WRITE ON DIRECTORY data_pump_dir TO adb_user;

Valores de Retorno

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 adb_user:

    GRANT READ ON DIRECTORY data_pump_dir TO adb_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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 DBMS_CLOUD Formato de URI.

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:

    Almacén de Objetos CREATED LAST_MODIFIED
    Oracle Cloud Infrastructure nativo Devuelve el registro de hora Devuelve el registro de hora
    Swift de Oracle Cloud Infrastructure Devuelve NULL Devuelve el registro de hora
    Oracle Cloud Infrastructure Classic Devuelve NULL Devuelve el registro de hora
    Amazon S3 Devuelve NULL Devuelve el registro de hora
    Compatibilidad con Amazon S3 Devuelve NULL Devuelve el registro de hora
    Azure Devuelve el registro de hora Devuelve el registro de hora
    GitHub Repositorio    
  • El valor del total de control es el total de control MD5. Es un número de 32 caracteres que se calcula en el contenido del objeto. Se espera que tenga un valor de total de control diferente si se utiliza la credencial OCI$RESOURCE_PRINCIPAL.

  • 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

Con este procedimiento se mueve un objeto de un cubo o carpeta de Cloud Object Storage a otro.

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

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

La ubicación de destino también utiliza por defecto el nombre de la credencial de origen 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 al almacenamiento de objetos en la nube de origen.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 la carpeta o el cubo de Object Storage de origen.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats para obtener más información.

target_object_uri

Especifica el URI para la carpeta o el cubo 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 DBMS_CLOUD URI Formats 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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;
/

PUT_OBJECT Procedure

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);


DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       contents             IN BLOB,
       file_name            IN VARCHAR2);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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 DBMS_CLOUD Formato de URI.

directory_name

Nombre del directorio en Autonomous Database.

Foot 2

file_name

Nombre del archivo en el directorio especificado.

Nota a pie de página 2

Nota

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 adb_user:

GRANT READ ON DIRECTORY data_pump_dir TO adb_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 almacenamiento de objetos en la nube, 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

Almacenamiento de bloques de Azure

256 MB

Compatibilidad 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 DBMS_CLOUD URI Formats para obtener más información.

SYNC_EXTERNAL_PART_TABLE Procedimiento

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 valida una partición específica. Si no se especifica, lea todas las particiones de forma secuencial hasta que se alcance rowcount.

subpartition_name

Si se define, solo se valida 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 valida una partición específica. 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 valida 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.

DBMS_CLOUD para la gestión masiva de archivos

Los subprogramas para operaciones de archivos masivos dentro del paquete DBMS_CLOUD.

Subprograma Descripción
Procedimiento BULK_COPY

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

Procedimiento BULK_DELETE

El procedimiento suprime archivos del cubo o la carpeta de Cloud Object Storage.

Procedimiento BULK_DOWNLOAD

Este procedimiento descarga archivos del cubo del almacén de objetos en la nube a un directorio de Autonomous Database.

Procedimiento BULK_MOVE

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

Procedimiento BULK_UPLOAD

Este procedimiento carga archivos de un directorio de Autonomous Database en Cloud Object Storage.

Procedimiento BULK_COPY

Con este procedimiento se copian en bloque archivos de un cubo de Cloud Object Storage a otro. El formulario sobrecargado permite utilizar el parámetro operation_id.

Puede filtrar la lista de archivos que se van a suprimir mediante un patrón de expresión regular compatible con el operador REGEXP_LIKE.

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

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

Por defecto, la ubicación de destino también utiliza el nombre de credencial de origen.

Sintaxis

DBMS_CLOUD.BULK_COPY (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_COPY (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL,
      operation_id            OUT NUMBER
);

Parámetros

parámetro Descripción

source_credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

source_location_uri

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

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats para obtener más información.

target_location_uri

Especifica el URI para la carpeta o el cubo de Object Storage de destino, donde se deben copiar los archivos.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

regex_filter

Especifica la expresión REGEX para filtrar archivos. El patrón de expresión REGEX debe ser compatible con el operador REGEXP_LIKE.

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

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

format

Especifica las opciones de configuración adicionales para la operación de archivo. Estas opciones se especifican como una cadena JSON.

Las opciones de formato admitidas son:
  • logretention: acepta un valor entero que determina la duración en días durante la que se retiene la tabla de estado para una operación masiva.

    El valor por defecto es 2 días.

  • logprefix: acepta un valor de cadena que determina la cadena de prefijo de nombre de tabla de estado de operación en bloque.

    El tipo de operación es el valor por defecto. Para BULK_COPY, el valor logprefix por defecto es COPYOBJ.

  • priority: acepta un valor de cadena que determina el número de operaciones de archivo realizadas simultáneamente.

    Una operación con mayor prioridad consume más recursos de base de datos y debe ejecutarse más rápido.

    Acepta los siguientes valores:

    • HIGH: determina el número de archivos paralelos manejados mediante el recuento de ECPU de la base de datos (recuento de OCPU si la base de datos utiliza OCPU)

    • MEDIUM: determina el número de procesos simultáneos que utilizan el límite de simultaneidad para el servicio Medium. El valor por defecto es 4.

    • LOW: procesa los archivos en orden de serie.

    El valor por defecto es MEDIUM.

    El número máximo de operaciones de archivos simultáneas está limitado a 64.

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

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

  • Se devuelve un error cuando el URI de origen y destino apuntan al mismo cubo o carpeta de Object Storage.

Ejemplo

BEGIN 
DBMS_CLOUD.BULK_COPY (
     source_credential_name => 'OCI_CRED',
     source_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
     target_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
     format       => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/

Procedimiento BULK_DELETE

Este procedimiento suprime archivos de Cloud Object Storage de forma masiva. El formulario sobrecargado permite utilizar el parámetro operation_id. Puede filtrar la lista de archivos que se van a suprimir mediante un patrón de expresión regular compatible con el operador REGEXP_LIKE.

Sintaxis

 DBMS_CLOUD.BULK_DELETE(
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_DELETE (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT NUMBER
);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

location_uri

Especifica el URI, que apunta a una ubicación de Object Storage en Autonomous Database.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats para obtener más información.

regex_filter

Especifica la expresión REGEX para filtrar archivos. El patrón de expresión REGEX debe ser compatible con el operador REGEXP_LIKE.

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

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

format

Especifica las opciones de configuración adicionales para la operación de archivo. Estas opciones se especifican como una cadena JSON.

Las opciones de formato admitidas son:
  • logretention: acepta un valor entero que determina la duración en días durante la que se retiene la tabla de estado para una operación masiva.

    El valor por defecto es 2 días.

  • logprefix: acepta un valor de cadena que determina la cadena de prefijo de nombre de tabla de estado de operación en bloque.

    El tipo de operación es el valor por defecto. Para BULK_DELETE, el valor logprefix por defecto es DELETE.

  • priority: acepta un valor de cadena que determina el número de operaciones de archivo realizadas simultáneamente.

    Una operación con una prioridad más alta consume más recursos de base de datos y se completa antes.

    Acepta los siguientes valores:

    • HIGH: determina el número de archivos paralelos manejados mediante el recuento de ECPU de la base de datos (recuento de OCPU si la base de datos utiliza OCPU).

    • MEDIUM: determina el número de procesos simultáneos que utilizan el límite de simultaneidad para el servicio Medium. El valor por defecto es 4.

    • LOW: procesa los archivos en orden de serie.

    El valor por defecto es MEDIUM.

    El número máximo de operaciones de archivos simultáneas está limitado a 64.

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

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.BULK_DELETE (    
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     format          => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/

Procedimiento BULK_DOWNLOAD

Este procedimiento descarga archivos en un directorio de Autonomous Database desde Cloud Object Storage. El formulario sobrecargado permite utilizar el parámetro operation_id. Puede filtrar la lista de archivos que se van a descargar mediante un patrón de expresión regular compatible con el operador REGEXP_LIKE.

Sintaxis

DBMS_CLOUD.BULK_DOWNLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_DOWNLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT NUMBER
);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

location_uri

Especifica el URI, que apunta a una ubicación de Object Storage en Autonomous Database.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats para obtener más información.

directory_name

Nombre del directorio de la instancia de Autonomous Database desde el que desea descargar los archivos.

Este parámetro es obligatorio.

regex_filter

Especifica la expresión REGEX para filtrar archivos. El patrón de expresión REGEX debe ser compatible con el operador REGEXP_LIKE.

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

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

format

Especifica las opciones de configuración adicionales para la operación de archivo. Estas opciones se especifican como una cadena JSON.

Las opciones de formato admitidas son:
  • logretention: acepta un valor entero que determina la duración en días durante la que se retiene la tabla de estado para una operación masiva.

    El valor por defecto es 2 días.

  • logprefix: acepta un valor de cadena que determina la cadena de prefijo de nombre de tabla de estado de operación en bloque. Para BULK_DOWNLOAD, el valor logprefix por defecto es DOWNLOAD.

    El tipo de operación es el valor por defecto.

  • priority: acepta un valor de cadena que determina el número de operaciones de archivo realizadas simultáneamente.

    Una operación con una prioridad más alta consume más recursos de base de datos y se completa antes.

    Acepta los siguientes valores:

    • HIGH: determina el número de archivos paralelos manejados mediante el recuento de ECPU de la base de datos (recuento de OCPU si la base de datos utiliza OCPU).

    • MEDIUM: determina el número de procesos simultáneos que utilizan el límite de simultaneidad para el servicio Medium. El valor por defecto es 4.

    • LOW: procesa los archivos en orden de serie.

    El valor por defecto es MEDIUM.

    El número máximo de operaciones de archivos simultáneas está limitado a 64.

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

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.BULK_DOWNLOAD (    
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     directory_name  => 'BULK_TEST',
     format          => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
 );
END;
/

Procedimiento BULK_MOVE

Este procedimiento mueve archivos masivamente de un cubo o carpeta de Cloud Object Storage a otro. El formulario sobrecargado permite utilizar el parámetro operation_id.

Puede filtrar la lista de archivos que se van a suprimir mediante un patrón de expresión regular compatible con el operador REGEXP_LIKE.

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

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

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

El primer paso para mover archivos es copiarlos en la ubicación de destino y, a continuación, suprimir los archivos de origen una vez que se hayan copiado correctamente.

Se cambia el nombre del objeto en lugar de moverlo si el almacén de objetos permite cambiar el nombre de las operaciones entre las ubicaciones de origen y destino.

Sintaxis

DBMS_CLOUD.BULK_MOVE (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_MOVE (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL,
      operation_id            OUT NUMBER
);

Parámetros

parámetro Descripción

source_credential_name

Nombre de la credencial para acceder al almacenamiento de objetos en la nube de origen.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

source_location_uri

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

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats para obtener más información.

target_location_uri

Especifica el URI para la carpeta o el cubo 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 DBMS_CLOUD URI Formats 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.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

regex_filter

Especifica la expresión REGEX para filtrar archivos. El patrón de expresión REGEX debe ser compatible con el operador REGEXP_LIKE.

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

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

format

Especifica las opciones de configuración adicionales para la operación de archivo. Estas opciones se especifican como una cadena JSON.

Las opciones de formato admitidas son:
  • logretention: acepta un valor entero que determina la duración en días durante la que se retiene la tabla de estado para una operación masiva.

    El valor por defecto es 2 días.

  • logprefix: acepta un valor de cadena que determina la cadena de prefijo de nombre de tabla de estado de operación en bloque.

    El tipo de operación es el valor por defecto. Para BULK_MOVE, el valor logprefix por defecto es MOVE.

  • priority: acepta un valor de cadena que determina el número de operaciones de archivo realizadas simultáneamente.

    Una operación con una prioridad más alta consume más recursos de base de datos y se completa antes.

    Acepta los siguientes valores:

    • HIGH: determina el número de archivos paralelos manejados mediante el recuento de ECPU de la base de datos (recuento de OCPU si la base de datos utiliza OCPU).

    • MEDIUM: determina el número de procesos simultáneos que utilizan el límite de simultaneidad para el servicio Medium. El valor por defecto es 4.

    • LOW: procesa los archivos en orden de serie.

    El valor por defecto es MEDIUM.

    El número máximo de operaciones de archivos simultáneas está limitado a 64.

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

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.BULK_MOVE (    
     source_credential_name => 'OCI_CRED',
     source_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
     target_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
     format                 => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
Nota

Se devuelve un error cuando el URI de origen y destino apuntan al mismo cubo o carpeta de Object Storage.

Procedimiento BULK_UPLOAD

Este procedimiento copia archivos en Cloud Object Storage desde un directorio de Autonomous Database. El formulario sobrecargado permite utilizar el parámetro operation_id.

Sintaxis

DBMS_CLOUD.BULK_UPLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_UPLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT NUMBER
);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para acceder a Cloud Object Storage.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

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

location_uri

Especifica el URI, que apunta a una ubicación de Object Storage para cargar archivos.

Este parámetro es obligatorio.

El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD URI Formats para obtener más información.

directory_name

Nombre del directorio de Autonomous Database desde el que se cargan los archivos.

Este parámetro es obligatorio.

regex_filter

Especifica la expresión REGEX para filtrar archivos. El patrón de expresión REGEX debe ser compatible con el operador REGEXP_LIKE.

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

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

format

Especifica las opciones de configuración adicionales para la operación de archivo. Estas opciones se especifican como una cadena JSON.

Las opciones de formato admitidas son:
  • logretention: acepta un valor entero que determina la duración en días durante la que se retiene la tabla de estado para una operación masiva.

    El valor por defecto es 2 días.

  • logprefix: acepta un valor de cadena que determina la cadena de prefijo de nombre de tabla de estado de operación en bloque.

    El tipo de operación es el valor por defecto. Para BULK_UPLOAD, el valor logprefix por defecto es UPLOAD.

  • priority: acepta un valor de cadena que determina el número de operaciones de archivo realizadas simultáneamente.

    Una operación con una prioridad más alta consume más recursos de base de datos y se completa antes.

    Acepta los siguientes valores:

    • HIGH: determina el número de archivos paralelos manejados mediante el recuento de ECPU de la base de datos (recuento de OCPU si la base de datos utiliza OCPU).

    • MEDIUM: determina el número de procesos simultáneos que utilizan el límite de simultaneidad para el servicio Medium. El valor por defecto es 4.

    • LOW: procesa los archivos en orden de serie.

    El valor por defecto es MEDIUM.

    El número máximo de operaciones de archivos simultáneas está limitado a 64.

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

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.BULK_UPLOAD ( 
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     directory_name  => 'BULK_TEST',
     format          => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
 );
END;
/

DBMS_CLOUD API de REST

En esta sección se tratan las API de REST de DBMS_CLOUD que se proporcionan con Autonomous Database.

API de REST Descripción

Función GET_RESPONSE_HEADERS

Esta función devuelve las cabecera de respuesta HTTP como datos de JSON en un objeto JSON en Autonomous Database.

Función GET_RESPONSE_RAW

Esta función devuelve la respuesta HTTP en formato RAW en Autonomous Database. Esto resulta útil si se espera que la respuesta HTTP tenga formato binario.

Función GET_RESPONSE_STATUS_CODE

Esta función devuelve el código de estado de respuesta HTTP como entero en Autonomous Database. El código de estado ayuda a identificar si la solicitud se ha realizado correctamente.

Función GET_RESPONSE_TEXT

Esta función devuelve la respuesta HTTP en formato TEXT (VARCHAR2 o CLOB) en Autonomous Database. Normalmente, la mayoría de las API de REST en la nube devuelven una respuesta JSON en formato de texto. Esta función es útil si espera que la respuesta HTTP esté en formato de texto.

Función GET_API_RESULT_CACHE_SIZE

Esta función devuelve el tamaño de caché de resultados configurado.

SEND_REQUEST Función y procedimiento

Esta función inicia una solicitud HTTP, obtiene la respuesta y finaliza la respuesta en Autonomous Database. Esta función proporciona un flujo de trabajo para enviar una solicitud de API de REST en la nube con argumentos y un código de respuesta de devolución y carga útil.

SET_API_RESULT_CACHE_SIZE Procedimiento

Con este procedimiento se define el tamaño máximo de caché para la sesión actual.

DBMS_CLOUD Visión general de la API de REST

Cuando utilice PL/SQL en su aplicación y necesite llamar a las API de REST en la nube, puede utilizar DBMS_CLOUD.SEND_REQUEST para enviar las solicitudes de la API de REST.

Las funciones de la API de REST de DBMS_CLOUD permiten realizar solicitudes HTTP mediante DBMS_CLOUD.SEND_REQUEST, así como obtener y guardar resultados. Estas funciones proporcionan una API genérica que le permite llamar a cualquier API de REST con los siguientes servicios en la nube soportados:

DBMS_CLOUD Constantes de la API de REST

Describe las constantes de DBMS_CLOUD para realizar solicitudes HTTP mediante DBMS_CLOUD.SEND_REQUEST.

DBMS_CLOUD soporta los métodos HTTP GET, PUT, POST, HEAD y DELETE. El método de la API de REST que se va a utilizar para una solicitud HTTP se describe normalmente en la documentación de la API de REST de Cloud.

Nombre Tipo Valor
METHOD_DELETE VARCHAR2(6) 'DELETE'
METHOD_GET VARCHAR2(3) 'GET'
METHOD_HEAD VARCHAR2(4) 'HEAD'
METHOD_POST VARCHAR2(4) 'POST'
METHOD_PUT VARCHAR2(3) 'PUT'

DBMS_CLOUD Caché de resultados de la API de REST

Puede guardar los resultados de la API de REST de DBMS_CLOUD cuando defina el parámetro cache en true con DBMS_CLOUD.SEND_REQUEST. En la vista SESSION_CLOUD_API_RESULTS se describen las columnas que puede utilizar al guardar los resultados de la API de REST.

Por defecto, las llamadas a la API de REST DBMS_CLOUD no guardan los resultados de la sesión. En este caso, utilice la función DBMS_CLOUD.SEND_REQUEST para devolver los resultados.

Al utilizar DBMS_CLOUD.SEND_REQUEST y definir el parámetro cache en TRUE, los resultados se guardan y puede ver los resultados anteriores en la vista SESSION_CLOUD_API_RESULTS. Guardar y consultar los resultados históricos de las solicitudes de la API de REST DBMS_CLOUD puede ser útil cuando necesite trabajar con los resultados anteriores en sus aplicaciones.

Por ejemplo, para consultar los resultados recientes de la API de REST DBMS_CLOUD, utilice la vista SESSION_CLOUD_API_RESULTS:

SELECT timestamp FROM SESSION_CLOUD_API_RESULTS;

Al guardar los resultados de la API de REST DBMS_CLOUD con DBMS_CLOUD.SEND_REQUEST, los datos guardados solo están disponibles en la misma sesión (conexión). Una vez finalizada la sesión, los datos guardados ya no estarán disponibles.

Use DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE and DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE to view and set the DBMS_CLOUD REST API cache size, and to disable caching.

Parámetro cache_scope de resultados de la API de REST DBMS_CLOUD

Al guardar los resultados de la API de REST DBMS_CLOUD con DBMS_CLOUD.SEND_REQUEST, se proporciona acceso a los resultados en SESSION_CLOUD_API_RESULTS según el valor de cache_scope.

Por defecto, el valor de cache_scope es 'PRIVATE' y solo el usuario actual de la sesión puede acceder a los resultados. Si define cache_scope en 'PUBLIC', todos los usuarios de la sesión pueden acceder a los resultados. El valor por defecto para cache_scope especifica que cada usuario solo puede ver los resultados de la API de REST de DBMS_CLOUD.SEND_REQUEST generados por los procedimientos que llaman con derechos del que hace la llamada. Al llamar a DBMS_CLOUD.SEND_REQUEST en una sesión, hay tres posibilidades que determinan si el usuario actual puede ver los resultados en la caché, según el valor cache_scope:

  • Ejecute directamente DBMS_CLOUD.SEND_REQUEST como sentencia de nivel superior y la llamada a DBMS_CLOUD.SEND_REQUEST y los resultados de la API de REST se guardan con el mismo nombre de usuario. En este caso, tiene acceso a todos los resultados con el valor por defecto, PRIVATE', definido para cache_scope.

  • Puede escribir un procedimiento de derechos del responsable de llamada de encapsulador y, como usuario actual, la llamada con DBMS_CLOUD.SEND_REQUEST llama al procedimiento y los resultados de la API de REST se guardan con el mismo nombre de usuario. En este caso, y tiene acceso a todos los resultados con el valor por defecto, 'PRIVATE'', definido para cache_scope.

  • Escribe un procedimiento de derechos del depurador y el procedimiento es propiedad de otro usuario. Al llamar a DBMS_CLOUD.SEND_REQUEST dentro del procedimiento, los resultados se guardan con el nombre de usuario del propietario del procedimiento.

    En este caso, un usuario con derechos de otro responsable de la definición llama a DBMS_CLOUD.SEND_REQUEST, y los resultados de la API de REST se guardan con ese propietario del procedimiento de definición. En este caso, por defecto, cuando cache_scope es PRIVATE', la sesión del denominador no puede ver los resultados.

    Si el propietario del procedimiento del responsable de la definición desea que los resultados estén disponibles para cualquier usuario de sesión de llamada, debe definir cache_scope en 'PUBLIC' en DBMS_CLOUD.SEND_REQUEST.

DBMS_CLOUD Vista SESSION_CLOUD_API_RESULTS de la API de REST

Puede guardar los resultados de la API de REST de DBMS_CLOUD cuando defina el parámetro cache en true con DBMS_CLOUD.SEND_REQUEST. En la vista SESSION_CLOUD_API_RESULTS se describen las columnas que puede utilizar al guardar los resultados de la API de REST.

La vista SESSION_CLOUD_API_RESULTS es la vista creada si almacena en caché los resultados con DBMS_CLOUD.SEND_REQUEST. Puede consultar los resultados históricos que pertenecen a la sesión de usuario. Cuando finaliza la sesión, se depuran los datos de SESSION_CLOUD_API_RESULTS.

Columna Descripción
URI URL de solicitud de la API de REST de DBMS_CLOUD
TIMESTAMP Registro de hora de respuesta de la API de REST de DBMS_CLOUD
CLOUD_TYPE El tipo de nube de la API de REST de DBMS_CLOUD, como Oracle Cloud Infrastructure, AMAZON_S3 y AZURE_BLOB
REQUEST_METHOD Método de solicitud de la API de REST de DBMS_CLOUD, como GET, PUT, HEAD
REQUEST_HEADERS Cabeceras de solicitud de la API de REST de DBMS_CLOUD
REQUEST_BODY_TEXT Cuerpo de solicitud de la API de REST de DBMS_CLOUD en CLOB
RESPONSE_STATUS_CODE Código de estado de la respuesta de la API de REST de DBMS_CLOUD, como 200(OK), 404(Not Found)
RESPONSE_HEADERS Cabeceras de respuesta de la API de REST de DBMS_CLOUD
RESPONSE_BODY_TEXT Cuerpo de respuesta de la API de REST de DBMS_CLOUD en CLOB
SCOPE

cache_scope definido por DBMS_CLOUD.SEND_REQUEST. Los valores válidos son PUBLIC o PRIVATE.

Función GET_RESPONSE_HEADERS

Esta función devuelve las cabecera de respuesta HTTP como datos de JSON en un objeto JSON.

Sintaxis

DBMS_CLOUD.GET_RESPONSE_HEADERS(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN JSON_OBJECT_T;

Parámetros

parámetro Descripción
resp

Tipo de respuesta HTTP devuelta de DBMS_CLOUD.SEND_REQUEST.

Excepciones

Excepción Error Descripción
invalid_response ORA-20025

Se ha transferido un objeto de tipo de respuesta no válido a DBMS_CLOUD.GET_RESPONSE_HEADERS.

Función GET_RESPONSE_RAW

Esta función devuelve la respuesta HTTP en formato RAW. Esto resulta útil si se espera que la respuesta HTTP tenga formato binario.

Sintaxis

DBMS_CLOUD.GET_RESPONSE_RAW(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN BLOB;

Parámetros

parámetro Descripción
resp

Tipo de respuesta HTTP devuelta de DBMS_CLOUD.SEND_REQUEST.

Excepciones

Excepción Error Descripción
invalid_response ORA-20025

Se ha transferido un objeto de tipo de respuesta no válido a DBMS_CLOUD.GET_RESPONSE_RAW.

Función GET_RESPONSE_STATUS_CODE

Esta función devuelve el código de estado de respuesta HTTP como entero. El código de estado ayuda a identificar si la solicitud se ha realizado correctamente.

Sintaxis

DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN PLS_INTEGER;

Parámetros

parámetro Descripción
resp

Tipo de respuesta HTTP devuelta de DBMS_CLOUD.SEND_REQUEST.

Excepciones

Excepción Error Descripción
invalid_response ORA-20025

Se ha transferido un objeto de tipo de respuesta no válido a DBMS_CLOUD.GET_RESPONSE_STATUS_CODE.

Función GET_RESPONSE_TEXT

Esta función devuelve la respuesta HTTP en formato TEXT (VARCHAR2 o CLOB). Normalmente, la mayoría de las API de REST en la nube devuelven una respuesta JSON en formato de texto. Esta función es útil si espera que la respuesta HTTP esté en formato de texto.

Sintaxis

DBMS_CLOUD.GET_RESPONSE_TEXT(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN CLOB;

Parámetros

parámetro Descripción
resp

Tipo de respuesta HTTP devuelta de DBMS_CLOUD.SEND_REQUEST.

Excepciones

Excepción Error Descripción
invalid_response ORA-20025

Se ha transferido un objeto de tipo de respuesta no válido a DBMS_CLOUD.GET_RESPONSE_TEXT.

Función GET_API_RESULT_CACHE_SIZE

Esta función devuelve el tamaño de caché de resultados configurado. El valor de tamaño de caché solo se aplica a la sesión actual.

Sintaxis

DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE()
   RETURN NUMBER;

SEND_REQUEST Función y procedimiento

Esta función y procedimiento inicia una solicitud HTTP, obtiene la respuesta y finaliza la respuesta. Esta función proporciona un flujo de trabajo para enviar una solicitud de API de REST en la nube con argumentos y la función devuelve un código de respuesta y una carga útil. Si utiliza el procedimiento, puede ver los resultados y los detalles de respuesta de los resultados guardados con la vista SESSION_CLOUD_API_RESULTS.

Sintaxis

DBMS_CLOUD.SEND_REQUEST(
       credential_name    IN VARCHAR2,
       uri                IN VARCHAR2,
       method             IN VARCHAR2,
       headers            IN CLOB DEFAULT NULL,
       async_request_url  IN VARCHAR2 DEFAULT NULL,
       wait_for_states    IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
       timeout            IN NUMBER DEFAULT 0,
       cache              IN PL/SQL BOOLEAN DEFAULT FALSE,
       cache_scope        IN VARCHAR2 DEFAULT 'PRIVATE',
       body               IN BLOB DEFAULT NULL)
   RETURN DBMS_CLOUD_TYPES.resp;

DBMS_CLOUD.SEND_REQUEST(
       credential_name    IN VARCHAR2,
       uri                IN VARCHAR2,
       method             IN VARCHAR2,
       headers            IN CLOB DEFAULT NULL,
       async_request_url  IN VARCHAR2 DEFAULT NULL,
       wait_for_states    IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
       timeout            IN NUMBER DEFAULT 0,
       cache              IN PL/SQL BOOLEAN DEFAULT FALSE,
       cache_scope        IN VARCHAR2 DEFAULT 'PRIVATE',
       body               IN BLOB DEFAULT NULL);

Parámetros

parámetro Descripción

credential_name

Nombre de la credencial para la autenticación con la API nativa en la nube correspondiente.

Puede utilizar 'OCI$RESOURCE_PRINCIPAL' como credential_name cuando la entidad de recurso está activada. Consulte ENABLE_RESOURCE_PRINCIPAL.

uri

URI HTTP para realizar la solicitud.

method

Método de solicitud HTTP: GET, PUT, POST, HEAD o DELETE. Utilice la constante de paquete DBMS_CLOUD para especificar el método.

Consulte DBMS_CLOUD Constantes de la API de REST para obtener más información.

headers

Cabeceras de solicitud HTTP para la API nativa en la nube correspondiente en formato JSON. Las cabeceras de autenticación se definen automáticamente; solo se transfieren cabeceras personalizadas.

async_request_url

Una URL de solicitud asíncrona.

Para obtener la URL, seleccione la API de solicitud de la lista de API (consulte https://docs.cloud.oracle.com/en-us/iaas/api/). A continuación, vaya para buscar la API para su solicitud en el panel izquierdo. Por ejemplo, API de Database Services → Autonomous Database → StopAutonomousDatabase. En esta página se muestra el directorio raíz de la API (y el punto final base). A continuación, agregue el punto final base con la ruta relativa obtenida para el enlace WorkRequest de la solicitud de trabajo.

wait_for_states

La espera de estados es un estado de tipo: DBMS_CLOUD_TYPES.wait_for_states_t. Los siguientes son valores válidos para los estados esperados: "ACTIVE", "CANCELED", "COMPLETED", "DELETED", "FAILED" y "SUCCEEDED".

Se permiten varios estados para wait_for_states. El valor por defecto de wait_for_states es esperar a cualquiera de los estados esperados: "ACTIVE", "CANCELED", "COMPLETED", "DELETED", "FAILED" o "SUCCEEDED".

timeout

Especifica el timeout, en segundos, para solicitudes asíncronas con los parámetros async_request_url y wait_for_states.

El valor por defecto es 0. Esto indica que se debe esperar a que finalice la solicitud sin que se produzca ningún timeout.

cache

Si TRUE especifica que la solicitud se debe almacenar en la caché de API de resultados de REST.

El valor por defecto es FALSE, lo que significa que las solicitudes de API de REST no se almacenan en caché.

cache_scope

Especifica si todos pueden tener acceso a esta caché de resultados de solicitud. Valores válidos: "PRIVATE" y "PUBLIC". El valor por defecto es "PRIVATE".

body

Cuerpo de solicitud HTTP para las solicitudes PUT y POST.

Excepciones

Excepción Error Descripción
invalid_req_method ORA-20023

El método de solicitud transferido a DBMS_CLOUD.SEND_REQUEST no es válido.

invalid_req_header ORA-20024

Las cabecera de solicitud transferidas a DBMS_CLOUD.SEND_REQUEST no tienen un formato JSON válido.

Notas de Uso

  • Si utiliza Oracle Cloud Infrastructure, debe utilizar un valor de credencial basada en clave de conexión para credential_name. Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

  • Los parámetros opcionales async_request_url, wait_for_states y timeout permiten gestionar solicitudes de larga ejecución. Con este tipo de forma asíncrona de send_request, la función espera el estado de finalización especificado en wait_for_states antes de volver. Con estos parámetros en la solicitud de envío, transfiere los estados de devolución esperados en el parámetro wait_for_states y utiliza el parámetro async_request_url para especificar una solicitud de trabajo asociada, la solicitud no se devuelve inmediatamente. En su lugar, la solicitud realiza un sondeo de async_request_url hasta que el estado de devolución sea uno de los estados esperados o se supere timeout (timeout es opcional). Si no se especifica timeout, la solicitud espera hasta que se produzca un estado encontrado en wait_for_states.

SET_API_RESULT_CACHE_SIZE Procedimiento

Con este procedimiento se define el tamaño máximo de caché para la sesión actual. El valor de tamaño de caché solo se aplica a la sesión actual.

Sintaxis

DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(
       cache_size          IN NUMBER);

Parámetros

parámetro Descripción
cache_size

Defina el tamaño máximo de caché en el valor especificado cache_size. Si el nuevo tamaño máximo de caché es menor que el tamaño de caché actual, los registros más antiguos se borran hasta que el número de filas sea igual al tamaño máximo de caché especificado. El valor máximo es 10000.

Si el tamaño de caché se define en 0, el almacenamiento en caché se desactiva en la sesión.

El tamaño de caché por defecto es 10.

Excepciones

Excepción Error Descripción
invalid API result cache size ORA-20032

El valor mínimo es 0 y el valor máximo es 10000. Esta excepción se muestra cuando el valor de entrada es menor que 0 o mayor que 10000.

Ejemplo

EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(101);

DBMS_CLOUD Ejemplos de la API de REST

Muestra ejemplos que utilizan DBMS_CLOUD.SEND_REQUEST para crear y suprimir un cubo de Oracle Cloud Infrastructure Object Storage, así como un ejemplo para mostrar todos los compartimentos del arrendamiento.

Nota

En estos ejemplos se muestran las API de solicitud de Oracle Cloud Infrastructure y es necesario que utilice una credencial basada en clave de firma para credential_name. Las credenciales basadas en la clave de firma de Oracle Cloud Infrastructure incluyen los argumentos private_key y fingerprint.

Por ejemplo:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Consulte Procedimiento CREATE_CREDENTIAL para obtener información sobre DBMS_CLOUD.CREATE_CREDENTIAL.

Ejemplo de creación de cubo

Muestra un ejemplo mediante el método DBMS_CLOUD.SEND_REQUEST con HTTP POST para crear un cubo de almacén de objetos denominado bucketname.

Consulte CreateBucket para obtener información sobre la API del servicio Oracle Cloud Infrastructure Object Storage para este ejemplo.

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
            method => DBMS_CLOUD.METHOD_POST,
            body => UTL_RAW.cast_to_raw(
                        JSON_OBJECT('name' value 'bucketname',
                                    'compartmentId' value 'compartment_OCID'))
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

Notas:

  • 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.

  • Donde: region es una región de punto final. Consulte la referencia de la API de Object Storage en Puntos finales y referencia de API para obtener más información. Por ejemplo, donde region es: us-phoenix-1.

Ejemplo de supresión de cubo

Muestra un ejemplo mediante el método DBMS_CLOUD.SEND_REQUEST con HTTP DELETE para suprimir un cubo de almacén de objetos denominado bucketname.

Consulte DeleteBucket para obtener información sobre la API del servicio Oracle Cloud Infrastructure Object Storage para este ejemplo.

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname',
            method => DBMS_CLOUD.METHOD_DELETE
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

Notas:

  • 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.

  • Donde: region es una región de punto final. Consulte la referencia de la API de Object Storage en Puntos finales y referencia de API para obtener más información. Por ejemplo, donde region es: us-phoenix-1.

Ejemplo de enumeración de compartimentos

Muestra un ejemplo mediante el método DBMS_CLOUD.SEND_REQUEST con HTTP GET para mostrar todos los compartimentos del arrendamiento ( compartimento raíz). En este ejemplo, se muestra cómo transferir cabeceras de solicitud en DBMS_CLOUD.SEND_REQUEST.

Consulte ListCompartments para obtener información sobre la API del servicio Oracle Cloud Infrastructure Identity and Access Management para este ejemplo.

--
-- List compartments
--
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
  root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
  -- Send request
  dbms_output.put_line('Send Request');
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
            method => DBMS_CLOUD.METHOD_GET,
            headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
          );
  dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
  dbms_output.put_line(CHR(10));
END;
/

Donde: region es una región de punto final. Consulte la referencia de la API de Identity and Access Management (IAM) en Puntos finales y referencia de API para obtener más información. Por ejemplo, donde region es: uk-london-1.

Ejemplo de solicitud asíncrona

Muestra un ejemplo mediante el método DBMS_CLOUD.SEND_REQUEST con HTTP POST para realizar la operación de parada de Autonomous Database y esperar a que se produzca el estado. En este ejemplo, se muestra cómo utilizar DBMS_CLOUD.SEND_REQUEST con los parámetros async_request_url, wait_for_states y timeout.

--
-- Sent Work Request Autonomous Database Stop Request with Wait for Status
DECLARE
    l_resp DBMS_CLOUD_TYPES.resp;
    l_resp_json JSON_OBJECT_T;
    l_key_shape JSON_OBJECT_T;
    l_body JSON_OBJECT_T;
    status_array DBMS_CLOUD_TYPES.wait_for_states_t;
BEGIN
  status_array := DBMS_CLOUD_TYPES.wait_for_states_t('SUCCEEDED');
  l_body := JSON_OBJECT_T('{}');
  l_body.put('autonomousDatabaseId', 'ocid');
-- Send request
  dbms_output.put_line(l_body.to_clob);
  dbms_output.put_line('Send Request');
  l_resp := DBMS_CLOUD.send_request(
                       credential_name    => 'NATIVE_CRED_OCI',
                       uri                => 'https://database.region.oraclecloud.com/20160918/autonomousDatabases/ocid/actions/stop',
                       method             => DBMS_CLOUD.METHOD_POST,
                       body               => UTL_RAW.cast_to_raw(l_body.to_clob),
                       async_request_url  => 'https://iaas.region.oraclecloud.com/20160918/workRequests',
                       wait_for_states    => status_array,
                       timeout            => 600
                  );
   dbms_output.put_line('resp body: '||DBMS_CLOUD.get_response_text(l_resp));
   dbms_output.put_line('resp headers: '||DBMS_CLOUD.get_response_headers(l_resp).to_clob);
END;
/

Donde: region es una región de punto final. Consulte la referencia de la API de Identity and Access Management (IAM) en Puntos finales y referencia de API para obtener más información. Por ejemplo, donde region es: uk-london-1.

ocid es el identificador de recurso de Oracle Cloud Infrastructure. Consulte Identificadores de recursos para obtener más información.



Notas

Nota al pie 3: El soporte para llamadas de API de REST de Azure Cloud está limitado al dominio "blob.windows.net".