DBMS_CLOUD para objetos y archivos
En esta sección se tratan los subprogramas DBMS_CLOUD que se utilizan para trabajar con objetos y archivos.
Requisitos
Como desarrollador, puede utilizar procedimientos DBMS_CLOUD con bases de datos de IA autónomas desplegadas en Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.
Según la opción de despliegue, se deben cumplir los siguientes requisitos previos para utilizar los procedimientos DBMS_CLOUD con los proveedores de servicios Amazon S3, Azure Blob Storage y Google Cloud Storage.
El administrador del conjunto debe haber configurado una conectividad saliente mediante un gateway de NAT, como se describe a continuación:
-
Para crear un Gateway de NAT en la red virtual en la nube (VCN) donde residen los recursos de la base de datos de IA autónoma, siga las instrucciones de Creación de un Gateway de NAT en la documentación de Oracle Cloud Infrastructure.
-
Después de crear el gateway de NAT, agregue una regla de ruta y una regla de seguridad de salida a cada subred (en la VCN) en la cual residan las bases de datos de IA autónoma de modo que estos recursos puedan utilizar el gateway para obtener una clave pública de su instancia deAzure AD:
-
Vaya a la página Detalles de la subred de la subred.
-
En el separador Información de subredes, haga clic en el nombre de la Tabla de ruta de la subredes para mostrar su página Detalles de tabla de ruta.
-
En la tabla de Reglas de Ruta existentes, compruebe si ya hay una regla con las siguientes características:
-
Destination: 0.0.0.0/0 (Destino):
-
Tipo de destino: gateway de NAT
-
Destino: nombre del puerta de enlace de NAT que ha creado en la VCN
Si dicha regla no existe, haga clic en Agregar reglas de ruta y agregue una regla de ruta con estas características.
-
-
Vuelva a la página Detalles de la subred de la subred.
-
En la tabla Listas de seguridad de La subred, haga clic en el nombre de su lista de seguridad para mostrar su página Detalles de Lista de seguridad.
-
En el menú lateral, en Recursos, haga clic en Reglas de salida.
-
En la tabla de Reglas de salida existentes, compruebe si ya hay una regla con las siguientes características:
-
Tipo de destino:CIDR
-
Destino:0.0.0.0/0
-
Protocolo IP:TCP
-
Rango de puertos de origen:443
-
Rango de puertos de destino: todos
Si dicha regla no existe, haga clic en Agregar reglas de entrada y agregue una regla de salida con estas características.
-
-
La configuración de proxy HTTP del entorno debe permitir que la base de datos acceda al proveedor de servicios en la nube.
El administrador de conjunto define esta configuración al crear la infraestructura de Exadata Cloud@Customer, como se describe en Uso de la consola para aprovisionar Exadata Database Service on Cloud@Customer.
Nota: La configuración de red, incluido el proxy HTTP, solo se puede editar hasta que la infraestructura de Exadata tenga el estado Necesita activación. Una vez que se activa, no puede editar esa configuración.
La configuración de un proxy HTTP para una infraestructura de Exadata ya aprovisionada necesita una solicitud de servicio (SR) en My Oracle Support. Consulte Creación de una Solicitud de Servicio en My Oracle Support para obtener más información.
Subprogramas DBMS_CLOUD para objetos y archivos
Subprogramas de la gestión de objetos y archivos dentro del paquete DBMS_CLOUD.
| Subprograma | Descripción |
|---|---|
| Procedimiento COPY_COLLECTION | Este procedimiento carga datos en una recopilación de SODA existente desde Cloud Object Storage o desde archivos de un directorio. |
| Procedimiento COPY_DATA | Este procedimiento carga datos en tablas de base de datos de IA autónoma existentes, ya sea desde Cloud Object Storage o desde archivos de un directorio. |
| Procedimiento COPY_DATA para archivos Avro, ORC o Parquet | Este procedimiento con el parámetro De forma similar a los archivos de texto, los datos se copian del archivo de origen ORC, Parquet o Avro 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 | Este procedimiento crea una tabla externa en archivos en la nube o en archivos en un directorio. Esto le permite ejecutar consultas en datos externos desde base de datos de IA autónoma. |
| Procedimiento CREATE_EXTERNAL_TABLE para archivos Avro, ORC o Parquet | Este procedimiento con el parámetro Esto le permite ejecutar consultas en datos externos desde base de datos de IA autónoma. |
| Procedimiento CREATE_EXTERNAL_TEXT_INDEX | Este procedimiento crea un índice de texto en los archivos del almacén de objetos. |
| Procedimiento CREATE_HYBRID_PART_TABLE | Este procedimiento crea una tabla particionada híbrida. Esto le permite ejecutar consultas sobre datos particionados híbridos desde Autonomous AI Database. |
| Procedimiento DELETE_ALL_OPERATIONS | Este procedimiento borra todas la operaciones de carga en la tabla user_load_operations del esquema o todas la operaciones de carga en datos del tipo especificado, según se ha indicado con el parámetro type. |
| Procedimiento DELETE_FILE | Este procedimiento elimina el archivo especificado del directorio especificado en la base de datos AI autónoma |
| Procedimiento DELETE_OBJECT | Este procedimiento suprime el objeto especificado en el almacén de objetos. |
| Procedimiento DELETE_OPERATION | Este procedimiento acepta un operation_id como entrada y suprime los logs asociados al operation_id especificado. |
| Procedimiento DROP_EXTERNAL_TEXT_INDEX | Este procedimiento borra el índice de texto en los archivos del almacén de objetos. |
| Procedimiento EXPORT_DATA | Este procedimiento exporta datos de la base de datos de IA autónoma 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 |
| Función y procedimiento GET_OBJECT | Este procedimiento está sobrecargado. El formulario del procedimiento lee un objeto de Cloud Object Storage y lo copia en Autonomous AI Database. El formulario de función lee un objeto de Cloud Object Storage y devuelve un valor BLOB a Autonomous AI Database. |
| Función LIST_FILES | Esta función muestra los archivos del directorio especificado. Los resultados incluyen los nombres de archivo y metadatos adicionales sobre los archivos, como el tamaño de archivo en bytes, el registro de hora de creación y el registro de hora de la última modificación. |
| Función LIST_OBJECTS | Esta función muestra los objetos de la ubicación especificada en el almacén de objetos. Los resultados incluyen los nombres de objetos y metadatos adicionales sobre los objetos, como el tamaño, el total de control, el registro de hora de creación y el registro de hora de la última modificación. |
| Procedimiento MOVE_OBJECT | Este procedimiento mueve un objeto de un cubo de Cloud Object Storage a otro. |
| Procedimiento PUT_OBJECT | Este procedimiento está sobrecargado. En un formulario, el procedimiento copia un archivo de la base de datos de IA autónoma en Cloud Object Storage. En otro formulario, el procedimiento copia un BLOB de la base de datos de IA autónoma en el almacenamiento de objetos en la nube. |
| Procedimiento SYNC_EXTERNAL_PART_TABLE | Este procedimiento simplifica la actualización de una tabla particionada externa desde archivos en 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 del origen para una tabla externa, genera información del log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla de archivo incorrecto en la base de datos de IA autónoma. |
| Procedimiento VALIDATE_EXTERNAL_PART_TABLE | Este procedimiento valida los archivos del origen para una tabla externa particionada, genera información del log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla de archivo incorrecto en la base de datos de Autonomous AI. |
| Procedimiento VALIDATE_HYBRID_PART_TABLE | Este procedimiento valida los archivos del origen para la tabla particionada híbrida, genera información del log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla híbrida en una tabla de archivo incorrecto en la base de datos AI autónoma. |
Procedimiento COPY_COLLECTION
Este procedimiento carga datos en una recopilación de SODA desde Cloud Object Storage o desde un directorio. Si la recopilación de SODA especificada no existe, el procedimiento la crea. El formulario sobrecargado permite utilizar el parámetro operation_id.
Sintaxis
DBMS_CLOUD.COPY_COLLECTION (
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.COPY_COLLECTION (
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER
);
Parámetros
| parámetro | Descripción |
|---|---|
collection_name |
Nombre de la recopilación de SODA en la que se cargarán los datos. Si ya existe una recopilación con este nombre, se cargarán los datos especificados; de lo contrario, se creará una nueva recopilación. |
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
file_uri_list |
Este parámetro especifica una lista delimitada por comas de URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen en la nube Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Por ejemplo: El formato de los URI depende del servicio Cloud Object Storage que utilice. para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición 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: Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo: Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo: Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo: Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo: |
format |
Opciones que describen el formato de los archivos de origen. Estas opciones se especifican como una cadena JSON. Los formatos soportados son: Además de los formatos mencionados para datos JSON, la base de datos de IA autónoma también soporta otros formatos. Para ver la lista de argumentos de formato admitidos por Autonomous AI Database, consulte Parámetro de formato. |
operation_id |
Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS. |
Ejemplo
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'OBJ_STORE_CRED',
username => 'user_name@oracle.com',
password => 'password'
);
DBMS_CLOUD.COPY_COLLECTION(
collection_name => 'myCollection',
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'
);
END;
/
Procedimiento COPY_DATA
Este procedimiento carga datos en tablas de base de datos de IA autónoma existentes desde archivos en la nube o desde archivos de un directorio. El formulario sobrecargado permite utilizar el parámetro operation_id.
Sintaxis
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2,
field_list IN CLOB,
format IN CLOB);
DBMS_CLOUD.COPY_DATA (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
schema_name IN VARCHAR2 DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
operation_id OUT NOCOPY NUMBER);
Parámetros
| parámetro | Descripción |
|---|---|
table_name |
Nombre de la tabla de destino en la base de datos. Es necesario crear la tabla de destino para poder ejecutar COPY_DATA. |
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
file_uri_list |
Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. URI de archivo de origen en la nube Este parámetro especifica una lista delimitada por comas de 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 Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Por ejemplo: El formato de los URI depende del servicio Cloud Object Storage que utilice; para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición 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: Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo: Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo: Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo: Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo: |
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 datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula Cuando el valor de la opción Para ver un ejemplo de uso de |
format |
Opciones que describen el formato de los archivos origen, log y archivos incorrectos. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato. Para conocer las opciones de formato de archivo Avro, ORC o Parquet, consulte DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet. |
operation_id |
Utilice este parámetro para realizar un seguimiento del progreso y del estado final de la operación de carga como el identificador correspondiente en la vista USER_LOAD_OPERATIONS. |
Notas de uso
El delimitador de registro predeterminado es detected newline. Con detected newline, DBMS_CLOUD intenta encontrar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro. DBMS_CLOUD busca primero el carácter de nueva línea de Windows \r\n. Si encuentra el carácter en línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. If a Windows newline character is not found, DBMS_CLOUD searches for the UNIX/Linux newline character \n, and if it finds one it uses \n as the record delimiter for all files in the procedure. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registros, puede encontrar un error como "KUP-04020: found record longer than buffer size supported". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.
Consulte Parámetro de formato para obtener información sobre la opción de formato recorddelmiter.
Ejemplos
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/
Procedimiento COPY_DATA 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 base de datos de IA autónoma 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. Este parámetro no se utiliza al especificar un directorio con |
file_uri_list |
Este parámetro especifica una lista delimitada por comas de URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen en la nube Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Por ejemplo: El formato de los URI depende del servicio Cloud Object Storage que utilice. para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición 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: Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo: Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo: Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo: Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo: |
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 |
Ignorado para archivos de Avro, ORC o Parquet. Los campos del origen coinciden con las columnas de la tabla externa por nombre. Los tipos de dato de origen se convierten al tipo de dato 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 Package Parquet to Oracle Data Type Mapping 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 detalles 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 Package Format Options for Avro, ORC o Parquet. |
Notas de uso
-
Al igual que con otros archivos de datos, las cargas de datos Avro, ORC y Parquet generan logs que se pueden ver en las tablas
dba_load_operationsyuser_load_operations. Cada operación de carga agrega un registro adba[user]_load_operationsque indica la tabla que contiene los logs.La tabla de logs proporciona información de resumen sobre la carga.
-
Para Avro, ORC o Parquet, cuando el parámetro
formattypese define en el valoravro,orcoparquet, la tablaBADFILE_TABLEsiempre está vacía.-
Para los archivos Parquet, los errores de restricción
PRIMARY KEYdevuelven un errorORA. -
Si los datos de una columna encuentran un error de conversión, por ejemplo, la columna de destino no es lo suficientemente grande como para contener el valor convertido, el valor de la columna se define en
NULL. Esto no produce 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 bloque de origen y de destino pueden estar en el mismo proveedor de almacén 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.
El nombre de credencial de origen también lo utiliza por defecto la ubicación de destino cuando no se proporciona el nombre de credencial de destino.
Sintaxis
DBMS_CLOUD.COPY_OBJECT (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parámetros
| parámetro | Descripción |
|---|---|
source_credential_name |
Nombre de la credencial para acceder a Cloud Object Storage de origen. Si no proporciona un valor |
source_object_uri |
Especifica el URI que apunta al cubo o la ubicación de la carpeta de Object Storage de origen. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
target_object_uri |
Especifica el URI del almacén de objetos de destino. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
target_credential_name |
Nombre de la credencial para acceder a la ubicación de Cloud Object Storage de destino. Si no proporciona un valor |
Ejemplo
BEGIN
DBMS_CLOUD.COPY_OBJECT (
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
Procedimiento CREATE_EXTERNAL_PART_TABLE
Este procedimiento crea una tabla particionada externa en los archivos de la nube o desde archivos de un directorio. Esto le permite ejecutar consultas en datos externos desde base de datos de IA autónoma.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
| parámetro | Descripción |
|---|---|
table_name |
Nombre de la tabla externa. |
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. |
partitioning_clause |
Especifica la cláusula de partición completa, incluida la información de ubicación de las particiones individuales. Si utiliza el parámetro |
file_uri_list |
Este parámetro especifica una lista delimitada por comas de URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen en la nube Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Esta opción solo está soportada con las tablas externas que se crean en un archivo de Object Storage. Por ejemplo: Si utiliza el parámetro El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición |
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
|
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, consulte field_list en Oracle Database 19c Utilities u Oracle Database 26ai Utilities. |
format |
La opción de formato
Si los archivos de datos no están estructurados y la subcláusula Para los nombres de objeto que no se basan en el formato hive, el orden de las columnas especificadas Para ver todas las opciones de parámetros |
Notas de uso
-
No puede llamar a este procedimiento con los parámetros
partitioning_clauseyfile_uri_list. -
La especificación del parámetro
column_listes opcional con archivos de datos estructurados, incluidos los archivos de datos Avro, Parquet u ORC. Si no se especificacolumn_list, la opciónpartition_columnsdel parámetroformatdebe incluirnameytype. -
El parámetro
column_listes necesario con archivos de datos no estructurados, como archivos de texto CSV. - El procedimiento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEadmite archivos particionados externos en los servicios de almacenamiento de objetos en la nube soportados, incluidos:- Oracle Cloud Infrastructure Object Storage
- Almacenamiento de bloques de Azure
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
-
El procedimiento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEadmite 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_TABLEcon el parámetrofile_uri_list, los tipos de columnas especificados en el nombre de archivo del almacén de objetos en la nube deben ser de uno de los siguientes tipos:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9) -
El delimitador de registro predeterminado es
detected newline. Condetected newline,DBMS_CLOUDintenta encontrar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro.DBMS_CLOUDbusca primero el carácter de nueva línea de Windows\r\n. Si encuentra el carácter en línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. If a Windows newline character is not found,DBMS_CLOUDsearches for the UNIX/Linux newline character\n, and if it finds one it uses\nas the record delimiter for all files in the procedure. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registros, puede encontrar 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 Formatos de URI de Cloud Object Storage para obtener información sobre la opción de formato
recorddelmiter. -
Las tablas particionadas externas que cree con
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEincluyen dos columnas invisiblesfile$pathyfile$name. Estas columnas ayudan a identificar de qué archivo procede un registro.-
file$path: especifica el texto de la ruta de acceso 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: uso del 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: uso de 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: uso de 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;
/
Ejemplo: creación de tablas particionadas externas mediante los objetos almacenados en el cubo de C3 Object Storage.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'USAGE_EXTP',
credential_name => 'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => 'https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/usage-data/*usage-data*.parquet',
format => json_object(
'type' value 'parquet', 'schema' value 'first',
'partition_columns' value json_array(
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'number'),
json_object('name' value 'day', 'type' value 'number')
)
)
);
END;
/
Procedimiento CREATE_EXTERNAL_TABLE
Este procedimiento crea una tabla externa en los archivos de la nube o en los archivos de un directorio. Esto le permite ejecutar consultas en datos externos desde base de datos de IA autónoma.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
| parámetro | Descripción |
|---|---|
table_name |
Nombre de la tabla externa. |
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio o una URL de hiperenlace de tabla con |
file_uri_list |
Este parámetro especifica una lista delimitada por comas de URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen en la nube Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Esta opción solo está soportada con las tablas externas que se crean en un archivo de Object Storage. Por ejemplo: El formato de los URI depende del servicio Cloud Object Storage que utilice; para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición 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: Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo: Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo: Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo: Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo: |
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 indica que los campos y sus tipo 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 regulares de Oracle Database. Para obtener más información sobre field_list, consulte ORACLE_LOADER Access Driver field_list bajo field_definitions Clause en Oracle Database 19c Utilities u Oracle Database 26ai Utilities. |
format |
Opciones que describen el formato de los archivos de origen. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato. Para los archivos con formato Avro, ORC o Parquet, consulte Procedimiento CREATE_EXTERNAL_TABLE para archivos Avro, ORC o Parquet. |
Notas de uso
-
El procedimiento
DBMS_CLOUD.CREATE_EXTERNAL_TABLEsoporta archivos particionados externos en los servicios soportados de almacenamiento de objeto en la nube, incluido el almacenamiento de bloques de Azure.La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
-
El delimitador de registro predeterminado es
detected newline. Condetected newline,DBMS_CLOUDintenta encontrar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro.DBMS_CLOUDbusca primero el carácter de nueva línea de Windows\r\n. Si encuentra el carácter en línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. If a Windows newline character is not found,DBMS_CLOUDsearches for the UNIX/Linux newline character\n, and if it finds one it uses\nas the record delimiter for all files in the procedure. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registros, puede encontrar un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.Consulte Parámetro de formato para obtener información sobre la opción de formato
recorddelimiter.
Ejemplos
Ejemplo: creación de una tabla externa a partir de un archivo CSV en Object Storage.
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
Ejemplo: creación de una tabla externa mediante los objetos almacenados en el cubo de Object Storage C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'CHANNELS_EXT',
credential_name =>'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => '<https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/channels.txt>',
format => json_object('delimiter' value ','),
column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)'
);
END;
/
Procedimiento CREATE_EXTERNAL_TABLE para Apache Iceberg
Este procedimiento crea tablas externas para tablas Apache Iceberg en las configuraciones soportadas.
Se admiten estas configuraciones específicas:
-
Tablas de Iceberg en AWS:
-
Tablas de iceberg registradas en AWS Glue Data Catalog, creadas con Spark o Athena.
Para obtener más información, consulte Uso del conector AWS Glue para leer y escribir tablas de Apache Iceberg con transacciones ACID y realizar viajes en el tiempo y Uso de tablas Iceberg.
-
Las tablas Iceberg se almacenan en AWS S3 proporcionando directamente la URL para el archivo de metadatos raíz.
-
-
Iceberg tables en OCI:
-
Tablas de iceberg generadas con OCI Data Flow mediante un catálogo de Hadoop.
Para obtener más información, consulte Ejemplos de Oracle Data Flow y Uso de un catálogo de Hadoop.
-
Las tablas de Iceberg se almacenan en OCI Object Storage proporcionando directamente la URL para el archivo de metadatos raíz.
-
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
Parámetros
| parámetro | Descripción |
|---|---|
table_name |
Nombre de la tabla externa. |
credential_name |
Nombre de la credencial utilizada para acceder a los archivos de datos, los archivos de metadatos y el catálogo de Iceberg (si se utiliza). Para las configuraciones de AWS y OCI, la credencial se debe crear como se describe en el procedimiento CREATE_CREDENTIAL. Actualmente no se admiten las credenciales de AWS Amazon Resource Names (ARN). |
file_uri_list |
Debe ser NULL si se especifica un catálogo de Iceberg (consulte el parámetro format a continuación). Si no se utiliza un catálogo de iceberg, file_uri_list debe contener el URI del archivo de metadatos de iceberg. |
column_list |
Debe ser NULL, ya que los nombres y tipos de columna se derivan automáticamente de los metadatos de Iceberg. Los nombres de columna coinciden con los nombres encontrados en los archivos de datos subyacentes (Parquet, Avro, ORC). Los tipos de dato de Oracle se derivan mediante las asignaciones Parquet/Avro/ORC entre los tipos de dato Iceberg y Parquet, Avro y ORC. Por lo tanto, los usuarios no pueden especificar |
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 Consulte Soporte de Iceberg en muestras de OCI Data Flow y Formatos de URI de DBMS_CLOUD para obtener más información. |
Parámetros de formato de ejemplo
-
Al crear tablas a través de una tabla Iceberg de AWS con un catálogo de AWS Glue, se realiza lo 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_protocolcontiene 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 accesoglue database.glue table name.
-
Al crear tablas a través de una tabla Iceberg de AWS mediante un URI de archivo de metadatos, se realiza de la siguiente manera:
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg') -
Al crear tablas a través de una tabla de OCI Iceberg creada por OCI Data Flow mediante el catálogo HadoopCatalog, es la 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_protocolcontiene un objeto JSON con dos elementos de la siguiente manera:protocol_type: debe ser'iceberg'protocol_config: objeto JSON anidado que especifica los detalles del catálogo de iceberg.iceberg_catalog_type: debe ser'hadoop'iceberg_warehouse: ruta de acceso del directorio de almacén que se utiliza al generar la tabla, en formato URI nativo.iceberg_table_path: ruta de accesodatabase_name.table nameutilizada al crear la tabla.
-
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_protocolcontiene un objeto JSON con un elemento,protocol_typeque debe ser'iceberg'.
Procedimiento CREATE_EXTERNAL_TABLE para archivos Avro, ORC o Parquet
Este procedimiento con el parámetro format definido en type con 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.
Esto le permite ejecutar consultas en datos externos desde base de datos de IA autónoma.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
| parámetro | Descripción |
|---|---|
table_name |
Nombre de la tabla externa. |
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
file_uri_list |
Este parámetro especifica una lista delimitada por comas de URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen en la nube Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Esta opción solo está soportada con las tablas externas que se crean en un archivo de Object Storage. Por ejemplo: El formato de los URI depende del servicio Cloud Object Storage que utilice; para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición 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: Puede utilizar comodines para especificar nombres de archivo en un directorio. Se puede utilizar el carácter "*" como comodín para varios caracteres; el carácter "?" se puede utilizar como comodín para un solo carácter. Por ejemplo: Para especificar varios directorios, utilice una lista separada por comas de directorios: por ejemplo: Utilice comillas dobles para especificar un nombre de directorio sensible a mayúsculas/minúsculas. Por ejemplo: Para incluir un carácter de comillas, utilice dos comillas. Por ejemplo: |
column_list |
(Opcional) Este campo, cuando se especifica, sustituye el parámetro Cuando se especifica Para los archivos de Parquet, consulte DBMS_CLOUD Package Parquet to Oracle Data Type Mapping para obtener más información. Para obtener más información sobre los archivos ORC, consulte DBMS_CLOUD Package ORC to Oracle Data Type Mapping. Para obtener información detallada sobre los archivos Avro, consulte DBMS_CLOUD Package Avro to Oracle Data Type Mapping. |
field_list |
Ignorado para archivos de Avro, ORC o Parquet. Los campos del origen coinciden con las columnas de la tabla externa por nombre. Los tipos de dato de origen se convierten al tipo de dato 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 Package Parquet to Oracle Data Type Mapping para obtener más información. Para obtener información detallada sobre los archivos Avro, consulte DBMS_CLOUD Package Avro to Oracle Data Type Mapping. |
format |
Para obtener más información sobre los archivos de origen Avro, ORC o Parquet type, consulte DBMS_CLOUD Package Format Options for Avro, ORC o Parquet. |
Ejemplos
-
ORC
format => '{"type":"orc", "schema": "all"}'format => json_object('type' value 'orc', 'schema' value 'first') -
Avro
format => '{"type":"avro", "schema": "all"}'format => json_object('type' value 'avro', 'schema' value 'first') -
Parquet
format => '{"type":"parquet", "schema": "all"}'format => json_object('type' value 'parquet', 'schema' value 'first')
Consejo: Consulte DBMS_CLOUD Package Avro, ORC y Parquet to Oracle Column Name Mapping 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
Este procedimiento 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 cualquier adición o supresión nueva realizada con archivos en el URI de ubicación.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);
Parámetros
| parámetro | Descripción |
|---|---|
credential_name |
Nombre de la credencial para acceder a la ubicación de Cloud Object Storage. Para los URI de cubo públicos, autenticados previamente o firmados previamente, se puede especificar un valor NULL. Si no proporciona un valor |
location_uri |
Este parámetro especifica la lista delimitada por comas de los URI de archivo de origen. Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Este parámetro es obligatorio. URI de archivo de origen en la nube Este parámetro especifica una lista delimitada por comas de 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 Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Ejemplo de uso de expresiones regulares: Ejemplo de uso de comodines:
El formato de los URI depende del servicio Cloud Object Storage que utilice. para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Consulte Condición REGEXP_LIKE para obtener más información sobre la condició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:
El valor Puede especificar palabras irrelevantes mediante los siguientes métodos:
Si no proporciona un parámetro |
Ejemplo
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/
Procedimiento CREATE_HYBRID_PART_TABLE
Este procedimiento crea una tabla particionada híbrida. Esto le permite ejecutar consultas sobre datos particionados híbridos desde la base de datos de IA autónoma mediante objetos y archivos de base de datos en la nube, o objetos y archivos de base de datos en un directorio.
Sintaxis
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
| parámetro | Descripción |
|---|---|
table_name |
Nombre de la tabla externa. |
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. |
partitioning_clause |
Especifica la cláusula de partición completa, incluida la información de ubicación de las particiones individuales. Para utilizar directorios, la cláusula de partición soporta los valores Puede utilizar comodines y expresiones regulares en los nombres de archivo de los URI de archivo de origen de nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro Los caracteres "*" y "?" se consideran caracteres comodín cuando el parámetro Los patrones de expresión regular solo 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 Por ejemplo: Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL de Oracle Database 19c o Referencia de lenguaje SQL de Oracle Database 26ai para obtener más información sobre la condición |
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, consulte field_list en Oracle Database 19c Utilities u Oracle Database 26ai Utilities. |
format |
Opciones que describen el formato de los archivos de origen. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato. |
Notas de uso
-
El procedimiento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEadmite archivos particionados externos en los servicios de almacenamiento de objetos en la nube soportados, incluido Azure Blob Storage.La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
-
El procedimiento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEadmite 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 cree con
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEincluyen dos columnas invisiblesfile$pathyfile$name. Estas columnas ayudan a identificar de qué archivo procede un registro.-
file$path: especifica el texto de la ruta de acceso 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 la operaciones de carga en la tabla user_load_operations del esquema o todas la operaciones de carga en datos del tipo especificado, según se ha 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 Si no se especifica |
Notas de uso
DBMS_CLOUD.DELETE_ALL_OPERATIONS no suprime las operaciones en ejecución actualmente (operaciones con el estado "En ejecución").
Procedimiento DELETE_FILE
Este procedimiento elimina el archivo especificado del directorio especificado en la base de datos de IA autónoma.
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 AI 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 del directorio que contiene el archivo a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de escritura a atpc_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Ejemplo
BEGIN
DBMS_CLOUD.DELETE_FILE(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Procedimiento DELETE_OBJECT
Este procedimiento suprime el objeto especificado en el almacén de objetos.
Sintaxis
DBMS_CLOUD.DELETE_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parámetros
| parámetro | Descripción |
|---|---|
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. |
object_uri |
URI de objeto o de archivo para el objeto que se va a suprimir. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. |
force |
Ignore y no informe errores si el objeto no existe. Los valores válidos son: TRUE y FALSE. El valor por defecto es FALSE. |
Ejemplo
BEGIN
DBMS_CLOUD.DELETE_OBJECT(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
Procedimiento DELETE_OPERATION
Este procedimiento borra las entradas de carga de datos para el identificador de operación especificado registrado en las tablas user_load_operations o dba_load_operations del esquema.
Sintaxis
DBMS_CLOUD.DELETE_OPERATION (
id IN NUMBER);
Parámetros
| parámetro | Descripción |
|---|---|
id |
Especifica el ID de operación asociado a las entradas del archivo log que desea suprimir. |
Ejemplo
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);
Procedimiento DROP_EXTERNAL_TEXT_INDEX
Este procedimiento borra el índice de texto en los archivos de Object Storage.
El procedimiento DROP_EXTERNAL_TEXT_INDEX borra el índice especificado creado con el procedimiento CREATE_EXTERNAL_TEXT_INDEX.
Sintaxis
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name IN VARCHAR2,
);
Parámetros
| parámetro | Descripción |
|---|---|
index_name |
Especifica el nombre del índice que va a borrar. El nombre del índice debe coincidir con el nombre proporcionado en el momento de la creación del índice. Este parámetro es obligatorio. |
Ejemplo
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name => 'EMP',
);
END;
/
Procedimiento EXPORT_DATA
Este procedimiento exporta datos de la base de datos de IA autónoma en función del resultado de una consulta. Este procedimiento se sobrecarga y admite la escritura de archivos en la nube o en un directorio.
Según el parámetro format type, el procedimiento exporta archivos a la nube o a una ubicación de directorio como archivos de texto en formato CSV, JSON, Parquet o XML.
Sintaxis
DBMS_CLOUD.EXPORT_DATA (
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB,
query IN CLOB);
DBMS_CLOUD.EXPORT_DATA (
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL,
query IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER);
Parámetros
| parámetro | Descripción |
|---|---|
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. Cuando no se incluye el parámetro de credencial, se especifica la salida a un directorio. |
file_uri_list |
Hay diferentes formas, según el valor del parámetro de formato y según si incluye un parámetro de credencial:
El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. |
format |
Cadena JSON que proporciona opciones de formato de exportación. La opción admitida es:
|
query |
Utilice este parámetro para especificar una sentencia Cuando el valor Por ejemplo: |
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 identificador correspondiente en la vista USER_LOAD_OPERATIONS. |
Notas de uso
-
El valor del parámetro
queryque 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_DATAmuestra los resultados de la consulta especificada en el almacén de objetos en la nube o en una ubicación de directorio en formatos de archivo CSV, JSON, Parquet o XML.Consulte Exportar datos al almacén de objetos como texto mediante DBMS_CLOUD.EXPORT_DATA y Exportar datos a un directorio mediante DBMS_CLOUD.EXPORT_DATA para obtener más información sobre el uso de
DBMS_CLOUD.EXPORT_DATAcon archivos de salida CSV, JSON, Parquet o XML. -
Para salidas 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 la base de datos de IA autónoma.
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 predeterminado es de 10 MB para CSV, JSON o XML. Puede cambiar este valor con la opción
maxfilesizedel parámetroformat. Consulte Opciones de formato de paquete DBMS_CLOUD para EXPORT_DATA para obtener más información. -
Para salidas 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 la base de datos de IA autónoma.
Consulte Nombre de archivo para salida de texto (CSV, JSON, Parquet o XML) para obtener más información.
-
El formato de salida de parquet solo se puede utilizar con servicios de base de datos altos y medios para bases de datos de IA autónomas en una infraestructura de Exadata dedicada.
Notas de uso para `DBMS_CLOUD.EXPORT_DATA` con salida a un directorio
-
El directorio proporcionado debe existir y debe estar conectado como usuario
ADMINo tener accesoWRITEal directorio. -
DBMS_CLOUD.EXPORT_DATAno crea directorios. -
El procedimiento no sobrescribe los archivos. Por ejemplo, si existe un archivo de volcado en
file_uri_list,DBMS_CLOUD.EXPORT_DATAinforma un error como:
ORA-31641: unable to create dump file "/u02/exports/123.dmp"
ORA-27038: created file already exists
Ejemplos
Ejemplo: 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;
/
Ejemplo: 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;
/
Ejemplo: DBMS_CLOUD.EXPORT_DATA con el parámetro de formato type con el valor csv.
BEGIN
DBMS_CLOUD.EXPORT_DATA(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
);
END;
/
Función y Procedimiento GET_OBJECT
Este procedimiento está sobrecargado. El formulario del procedimiento lee un objeto de Cloud Object Storage y lo copia en Autonomous AI Database. El formulario de función lee un objeto de Cloud Object Storage y devuelve un valor BLOB a Autonomous AI Database.
Sintaxis
DBMS_CLOUD.GET_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;
Parámetros
| parámetro | Descripción |
|---|---|
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. |
object_uri |
URI de archivo o de objeto. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. |
directory_name |
Nombre del directorio en la base de datos. (Consulte la nota a pie de página 1 a continuación) |
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 atpc_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Valores devueltos
La pantalla 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;
/
Ejemplo: para leer datos de caracteres de un archivo en el 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;
Ejemplo: para agregar una imagen almacenada en el almacén de objetos en 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;
/
In this example, namespace-string is the Oracle Cloud Infrastructure object storage namespace and bucketname is the bucket name. 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. Este parámetro admite comodines. |
Notas de uso
-
Para ejecutar
DBMS_CLOUD.LIST_FILEScon 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 aatpc_user:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user; - Se trata de una función de tabla con líneas discontinuas con el tipo de retorno
DBMS_CLOUD_TYPES.list_object_ret_t. DBMS_CLOUD.LIST_FILESno obtiene el valor de total de control y devuelveNULLpara este campo.DBMS_CLOUD.LIST_FILESsoporta el filtrado de archivos de forma selectiva mediante la sintaxisdirectory:filename. Los comodines están soportados en el nombre de archivo.
Ejemplos
Ejemplo: uso de la siguiente consulta para utilizar DBMS_CLOUD.LIST_FILES como una función de línea discontinua que devuelve una fila para cada archivo.
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
También puede utilizar DBMS_CLOUD.LIST_FILES con la sintaxis DIRECTORY:FILE, ya sea especificando un archivo o utilizando comodines. * y ? son los comodines soportados.
Ejemplo: para mostrar todos los archivos CSV que empiecen por "f" en el directorio DATA_PUMP_DIR con un comodín.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');
Ejemplo: para mostrar el archivo f1.csv en el directorio DATA_PUMP_DIR especificando el nombre de archivo.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');
Función LIST_OBJECTS
Esta función muestra los objetos de la ubicación especificada en el almacén de objetos. Los resultados incluyen los nombres de objetos y metadatos adicionales sobre los objetos, como el tamaño, el total de control, el registro de hora de creación y el registro de hora de la última modificación.
Sintaxis
DBMS_CLOUD.LIST_OBJECTS (
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parámetros
| parámetro | Descripción |
|---|---|
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. |
location_uri |
URI de carpeta o cubo de almacenamiento de objetos. El formato de los URI depende del servicio Cloud Object Storage que utilice; para obtener información, consulte Formatos de URI en la nube de almacenamiento de objetos. Los comodines se admiten para mostrar de forma selectiva archivos o subcarpetas en un URI. Los caracteres " Ejemplo de uso de comodines: |
Notas de uso
-
Según las capacidades del almacén de objetos,
DBMS_CLOUD.LIST_OBJECTSno devuelve valores para determinados atributos y el valor devuelto para el campo esNULLen este caso.Todos los almacenes de objetos soportados devuelven valores para los campos
OBJECT_NAME,BYTESyCHECKSUM. En la siguiente tabla se muestra soporte para los camposCREATEDyLAST_MODIFIEDpor almacén de objetos:Almacén de Objetos CREATEDLAST_MODIFIEDNativo de Oracle Cloud Infrastructure Registro de hora de devoluciones Registro de hora de devoluciones Oracle Cloud Infrastructure Swift Devuelve NULLRegistro de hora de devoluciones Amazon S3 Devuelve NULLRegistro de hora de devoluciones Compatibles con Amazon S3 Devuelve NULLRegistro de hora de devoluciones Azure Registro de hora de devoluciones Registro de hora de devoluciones -
El valor de total de control es el total de control MD5. Se trata de un número hexadecimal de 32 caracteres que se calcula en el contenido del objeto.
-
Se trata de una función de tabla con líneas discontinuas con el tipo de retorno
DBMS_CLOUD_TYPES.list_object_ret_t.
Ejemplo
Se trata de una función con canalización 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
In this example, namespace-string is the Oracle Cloud Infrastructure object storage namespace and bucketname is the bucket name. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Procedimiento MOVE_OBJECT
Este procedimiento mueve un objeto de un cubo o carpeta de Cloud Object Storage a otro.
La carpeta o el bloque de origen y de destino pueden estar en el mismo proveedor de almacén 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.
El nombre de credencial de origen también lo utiliza por defecto la ubicación de destino cuando no se proporciona el nombre de credencial de destino.
Sintaxis
DBMS_CLOUD.MOVE_OBJECT (
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parámetros
| parámetro | Descripción |
|---|---|
source_credential_name |
Nombre de la credencial para acceder a Cloud Object Storage de origen. Si no proporciona un valor |
source_object_uri |
Especifica el URI que apunta al cubo o la ubicación de la carpeta de Object Storage de origen. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
target_object_uri |
Especifica el URI del cubo o la carpeta de Object Storage de destino, donde se deben mover los archivos. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
target_credential_name |
Nombre de la credencial para acceder a la ubicación de Cloud Object Storage de destino. Si no proporciona un valor |
Ejemplo
BEGIN
DBMS_CLOUD.MOVE_OBJECT (
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
Procedimiento PUT_OBJECT
Este procedimiento está sobrecargado. En un formulario, el procedimiento copia un archivo de la base de datos de IA autónoma en Cloud Object Storage. En otro formulario, el procedimiento copia un BLOB de la base de datos de IA autónoma en el almacenamiento de objetos en la nube.
Sintaxis
DBMS_CLOUD.PUT_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
Parámetros
| parámetro | Descripción |
|---|---|
credential_name |
Nombre de la credencial para acceder a Cloud Object Storage. |
object_uri |
URI de archivo o de objeto. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. |
directory_name |
Nombre del directorio en la base de datos. (Consulte la nota a pie de página 1 a continuación) |
contents |
Especifica el BLOB que se va a copiar de la base de datos de IA autónoma al almacenamiento de objetos en la nube. |
file_name |
Nombre del archivo en el directorio especificado. |
compression |
Especifica la compresión utilizada para almacenar el objeto. Valor por defecto: |
Nota a Pie de Página 1
Nota: Para ejecutar DBMS_CLOUD.PUT_OBJECT con un usuario que no sea ADMIN, debe otorgar privilegios en el directorio a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de lectura a atpc_user:
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
Ejemplo
Para manejar datos 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
En función del almacenamiento de objetos en la nube, el tamaño del objeto que transfiere es limitado de la siguiente manera:
| 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 |
| Compatibles con Amazon S3 | Definido por el proveedor del almacén de objetos. Para obtener más información, consulte la documentación del profesional asistencial. |
El almacén de objetos de Oracle Cloud Infrastructure no permite escribir archivos en un bucket público sin proporcionar credenciales (Oracle Cloud Infrastructure permite a los usuarios descargar objetos de buckets públicos). Por lo tanto, debe proporcionar un nombre de credencial con credenciales válidas para almacenar un objeto en un bucket público de Oracle Cloud Infrastructure mediante PUT_OBJECT.
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
Procedimiento SYNC_EXTERNAL_PART_TABLE
Este procedimiento simplifica la actualización de una tabla particionada externa desde archivos en 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. Se debe crear la tabla de destino para poder 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, columnas suprimidas. Las actualizaciones de las columnas existentes, por ejemplo, un cambio en el tipo de dato devuelve errores. Valor por defecto: False |
Procedimiento VALIDATE_EXTERNAL_PART_TABLE
Este procedimiento valida los archivos de origen para una tabla externa particionada, genera información del log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla badfile en Autonomous AI 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, sólo 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 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 del log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla externa en una tabla badfile en Autonomous AI 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 Si la tabla externa hace referencia a los archivos Avro, ORC o Parquet, la validación se para en la primera fila rechazada. Cuando la tabla externa especifica el parámetro |
Notas de uso
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE funciona tanto con tablas externas particionadas como con tablas particionadas híbridas. Esto podría leer 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 leen en qué orden.
Procedimiento VALIDATE_HYBRID_PART_TABLE
Este procedimiento valida los archivos de origen para la tabla particionada híbrida, genera información del log y almacena las filas que no coinciden con las opciones de formato especificadas para la tabla híbrida en una tabla badfile en la base de datos de IA autónoma. 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, sólo se valida una partición específica. Si no se especifica, lea 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 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. |