DBMS_CLOUD para objetos y archivos
En esta sección, se tratan los subprogramas DBMS_CLOUD
que se utilizan para trabajar con objetos y archivos.
Requisitos
Como desarrollador, puede utilizar procedimientos DBMS_CLOUD con instancias de Autonomous Database desplegadas en Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.
En función de la opción de despliegue, se deben cumplir los siguientes requisitos para utilizar los procedimientos DBMS_CLOUD con los proveedores de servicios Amazon S3, Azure Blob Storage y Google Cloud Storage.
- Cree un gateway de NAT en la red virtual en la nube (VCN) en la que residan los recursos de Autonomous Database siguiendo las instrucciones de Creación de un gateway de NAT de la Documentación de Oracle Cloud Infrastructure.
- Después de crear el gateway de NAT, agregue una regla de ruta y una regla de seguridad de salida a cada subred (en la VCN) en la que residan los recursos de Autonomous Database para que estos recursos puedan utilizar el gateway para obtener una clave pública de la instancia de Azure AD:
- Vaya a la página Detalles de subred de la subred.
- En el separador Información de Subred, haga clic en el nombre de la Tabla de Direcciones de la subred para mostrar su página Detalles de Tabla de Direcciones.
- En la tabla de Reglas de ruta existentes, compruebe si ya hay una regla con las siguientes características:
- Destino: 0.0.0.0/0
- Tipo de destino: gateway de NAT
- Destino: nombre del gateway de NAT que acaba de crear en la VCN
Si dicha regla no existe, haga clic en Agregar reglas de ruta y agregue una regla de ruta con estas características.
- Vuelva a la página Detalles de subred de la subred.
- En la tabla Listas de seguridad de la subred, haga clic en el nombre de la lista de seguridad de la subred para mostrar su página Detalles de lista de seguridad.
- 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 Salida y agregue una regla de salida con estas características.
La configuración del proxy HTTP en el entorno debe permitir que la base de datos acceda al proveedor de servicios en la nube.
Note:
La configuración de red, incluido el proxy HTTP, solo se puede editar hasta que la infraestructura de Exadata tenga el estado Necesita activación. Una vez activada, no puede editar esa configuración.La configuración de un proxy HTTP para una infraestructura de Exadata ya aprovisionada necesita una solicitud de servicio (SR) en My Oracle Support. Consulte Creación de una solicitud de servicio en My Oracle Support para obtener más información.
DBMS_CLOUD Subprogramas para objetos y archivos
Los subprogramas para la gestión de objetos y archivos dentro del paquete DBMS_CLOUD.
Subprograma | Descripción |
---|---|
Este procedimiento carga datos en una recopilación de SODA existente, ya sea desde Cloud Object Storage o desde archivos en un directorio. | |
Este procedimiento carga datos en tablas de Autonomous Database existentes desde Cloud Object Storage o desde archivos de un directorio. | |
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. |
|
Este procedimiento copia archivos de un cubo de Cloud Object Storage a otro. | |
Con este procedimiento se crea una tabla externa en los archivos de la nube o de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database. | |
CREATE_EXTERNAL_TABLE Procedimiento para archivos Avro, ORC o Parquet |
Este procedimiento con el parámetro format type definido en el valor parquet , orc o avro crea una tabla externa con archivos de formato Parquet, ORC o Avro en la nube o en un directorio.
Permite ejecutar consultas en datos externos desde Autonomous Database. |
Este procedimiento crea un índice de texto en los archivos del almacén de objetos. |
|
Con este procedimiento se crea una tabla particionada híbrida. Permite ejecutar consultas en datos particionados híbridos desde Autonomous Database. | |
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 .
|
|
Este procedimiento elimina el archivo especificado del directorio especificado en Autonomous Database | |
Este procedimiento suprime el objeto especificado en el almacén de objetos. | |
Este procedimiento acepta |
|
Este procedimiento borra el índice de texto en los archivos del almacén de objetos. |
|
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 |
|
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.
|
|
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. | |
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. | |
Este procedimiento mueve un objeto de un cubo de Cloud Object Storage a otro. | |
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.
|
|
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. |
|
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. | |
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. | |
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 |
---|---|
|
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. |
|
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
|
Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen de nube Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición Directorio Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es: 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: |
|
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, Autonomous Database también soporta otros formatos. Para obtener la lista de argumentos de formato soportados por Autonomous Database, consulte Parámetro de formato. |
|
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 |
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 |
---|---|
|
Nombre de la tabla de destino en la base de datos. Es necesario crear la tabla de destino para poder ejecutar |
|
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
|
Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. URI de archivo de origen de nube Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición Directorio Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es: 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: |
|
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. |
|
Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es NULL significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula Cuando el valor de la opción Para ver un ejemplo de uso de |
|
Opciones que describen el formato del origen, el log y los archivos incorrectos. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato. Para conocer las opciones de formato de archivo Avro, ORC o Parquet, consulte Opciones de formato del paquete DBMS_CLOUD para Avro, ORC o Parquet. |
|
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 |
Notas de uso
El delimitador de registro por defecto es detected newline
. Con detected newline
, DBMS_CLOUD
intenta buscar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro. DBMS_CLOUD
busca primero el carácter de línea nueva \r\n
de Windows. Si encuentra el carácter de línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. Si no se encuentra un carácter de línea nueva de Windows, DBMS_CLOUD
busca el carácter de línea nueva de UNIX/Linux \n
y si encuentra uno utiliza \n
como delimitador de registro para todos los archivos del procedimiento. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registro, puede que aparezca un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported
". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.
Consulte Parámetro de formato para obtener información sobre la opción de formato recorddelmiter
.
Ejemplos
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/
COPY_DATA Procedimiento para archivos Avro, ORC o Parquet
format
type
definido en el valor avro
, orc
o parquet
carga datos en tablas de Autonomous Database existentes desde archivos Avro, ORC o Parquet en la nube o desde archivos en un directorio.
De forma similar a los archivos de texto, los datos se copian del archivo de origen Avro, ORC o Parquet en la tabla interna preexistente.
Sintaxis
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2 DEFAULT,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la tabla de destino en la base de datos. Es necesario crear la tabla de destino para poder ejecutar |
|
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
|
Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen de nube Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición Directorio Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es: 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: |
|
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. |
|
Se ignora para los archivos Avro, ORC o Parquet. Los campos del origen coinciden con las columnas de la tabla externa por nombre. Los tipos de datos de origen se convierten en el tipo de datos de columna de tabla externa. Para los archivos ORC, consulte DBMS_CLOUD Asignación de tipo de datos de ORC a Oracle. Para los archivos Parquet, consulte Asignación de tipo de datos de Parquet a Oracle en el paquete DBMS_CLOUD para obtener más información sobre la asignación. Para los archivos Avro, consulte Asignación de tipo de datos de Avro a Oracle en el paquete DBMS_CLOUD para obtener más información sobre la asignación. |
|
Opciones que describen el formato de los archivos de origen. Para los archivos Avro, ORC o Parquet, solo están soportadas dos opciones: consulte Opciones de formato del paquete DBMS_CLOUD para Avro, ORC o Parquet. |
Notas de uso
-
Al igual que con otros archivos de datos, las cargas de datos de Avro, ORC y Parquet generan logs que se pueden ver en las tablas
dba_load_operations
yuser_load_operations
. Con cada operación de carga se agrega un registro adba
[usuario]_load_operations
que indica la tabla que contiene los logs.En la tabla de logs se proporciona información de resumen sobre la carga.
-
Para Avro, ORC o Parquet, cuando el parámetro
format
type
se define en el valoravro
,orc
oparquet
, la tablaBADFILE_TABLE
siempre está vacía.-
Para los archivos Parquet, los errores de restricción
PRIMARY KEY
devuelven 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 para contener el valor convertido, el valor de la columna se define en
NULL
. Esto no genera un registro rechazado.
-
Procedimiento COPY_OBJECT
Este procedimiento copia un objeto de un cubo o carpeta de Cloud Object Storage a otro.
La carpeta o el cubo de origen y de destino pueden estar en el mismo proveedor del almacén de objetos en la nube o en otro diferente.
Cuando el origen y el destino están en distintos almacenes de objetos o tienen cuentas diferentes con el mismo proveedor de nube, puede proporcionar nombres de credenciales independientes para las ubicaciones de origen y destino.
El nombre de la credencial de origen también lo utiliza por defecto la ubicación de destino cuando no se proporciona el nombre de la credencial de destino.
Sintaxis
DBMS_CLOUD.COPY_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial para acceder a Cloud Object Storage de origen. Si no proporciona un valor |
|
Especifica el URI, que apunta a la ubicación de carpeta o cubo de Object Storage de origen. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
|
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. |
|
Nombre de la credencial para acceder a la ubicación de almacenamiento de objetos en la nube 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
Con este procedimiento se crea una tabla particionada externa en archivos de la nube o de archivos de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la tabla externa. |
|
Nombre de la credencial para acceder a Cloud Object Storage. |
|
Especifica la cláusula de partición completa, incluida la información de ubicación para particiones individuales. Si utiliza el parámetro |
|
Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen de nube Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 tablas externas creadas 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 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición |
|
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
|
|
Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es NULL significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula |
|
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 están basados en el formato de colmena, el orden de las columnas especificadas Para ver todas las opciones del parámetro |
Notas de uso
-
No puede llamar a este procedimiento con los parámetros
partitioning_clause
yfile_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 especificacolumn_list
, la opciónpartition_columns
del parámetroformat
debe incluirname
ytype
. -
El parámetro
column_list
es necesario con archivos de datos no estructurados, como archivos de texto CSV. -
El procedimiento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
soporta archivos externos en los servicios de almacenamiento de objetos en la nube soportados, incluidos:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
-
-
El procedimiento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
admite archivos particionados externos en directorios, ya sea en un sistema de archivos local o en un sistema de archivos de red. -
Al llamar a
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
con el parámetrofile_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
. Condetected newline
,DBMS_CLOUD
intenta buscar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro.DBMS_CLOUD
busca primero el carácter de línea nueva\r\n
de Windows. Si encuentra el carácter de línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. Si no se encuentra un carácter de línea nueva de Windows,DBMS_CLOUD
busca el carácter de línea nueva de UNIX/Linux\n
y si encuentra uno utiliza\n
como delimitador de registro para todos los archivos del procedimiento. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registro, puede que aparezca un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported
". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.Consulte Cloud Object Storage URI Formats para obtener información sobre la opción de formato
recorddelmiter
. -
Las tablas particionadas externas que crea con
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
incluyen dos columnas invisibles:file$path
yfile$name
. Estas columnas ayudan a identificar el archivo del que procede un registro.-
file$path
: especifica el texto de la ruta del archivo hasta el principio del nombre del objeto. -
file$name
: especifica el nombre del objeto, incluido todo el texto que sigue al nombre del cubo.
-
Ejemplos
Ejemplo con el parámetro partitioning_clause
:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
Ejemplo con los parámetros file_uri_list
y column_list
con archivos de datos no estructurados:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv',
column_list => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)',
field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
format => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/
Ejemplo con file_uri_list
sin el parámetro column_list
con archivos de datos estructurados:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
Procedimiento CREATE_EXTERNAL_TABLE
Este procedimiento crea una tabla externa en archivos de la nube o de archivos de un directorio. Permite ejecutar consultas en datos externos desde Autonomous Database.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la tabla externa. |
|
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 |
|
Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen de nube Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 tablas externas creadas en un archivo de Object Storage. Por ejemplo:
El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es: 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: |
|
Lista delimitada por comas de nombres de columna y tipos de datos para la tabla externa. |
|
Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es nulo, lo que significa que los campos y sus tipos de datos están determinados por el parámetro |
|
Opciones que describen el formato de los archivos de origen. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato. Para los archivos de formato Avro, ORC o Parquet, consulte Procedimiento CREATE_EXTERNAL_TABLE para archivos de Avro, ORC o Parquet. |
Notas de uso
-
El procedimiento
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
soporta archivos externos en los servicios de almacenamiento de objetos en la nube soportados, incluido Azure Blob Storage.La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
-
El delimitador de registro por defecto es
detected newline
. Condetected newline
,DBMS_CLOUD
intenta buscar automáticamente el carácter de nueva línea correcto que se va a utilizar como delimitador de registro.DBMS_CLOUD
busca primero el carácter de línea nueva\r\n
de Windows. Si encuentra el carácter de línea nueva de Windows, este se utiliza como delimitador de registro para todos los archivos del procedimiento. Si no se encuentra un carácter de línea nueva de Windows,DBMS_CLOUD
busca el carácter de línea nueva de UNIX/Linux\n
y si encuentra uno utiliza\n
como delimitador de registro para todos los archivos del procedimiento. Si los archivos de origen utilizan una combinación de diferentes delimitadores de registro, puede que aparezca un error como, por ejemplo, "KUP-04020: found record longer than buffer size supported
". En este caso, debe modificar los archivos de origen para utilizar el mismo delimitador de registro o solo especificar los archivos de origen que utilizan el mismo delimitador de registro.Consulte Parámetro de formato para obtener información sobre la opción de formato
recorddelimiter
.
Ejemplo
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
CREATE_EXTERNAL_TABLE Procedimiento para Apache Iceberg
Este procedimiento crea tablas externas para tablas de Apache Iceberg en las configuraciones soportadas.
- 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.
- Tablas de iceberg registradas en AWS Glue Data Catalog, creadas con Spark o Athena.
- 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.
- Tablas de iceberg generadas con OCI Data Flow mediante un catálogo de Hadoop.
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 |
---|---|
|
Nombre de la tabla externa. |
|
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). |
|
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.
|
|
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 |
|
Debe ser NULL, ya que los nombres de columna y los tipos de dato se derivan automáticamente de los metadatos de Iceberg. |
|
El parámetro Consulte Soporte de Iceberg en muestras de OCI Data Flow y Formatos de URI DBMS_CLOUD para obtener más información. |
Ejemplo de parámetro de formato para tablas de AWS Iceberg utilizando un catálogo de AWS Glue
A continuación se muestra un parámetro format
de ejemplo al crear tablas en una tabla AWS Iceberg mediante un catálogo de AWS Glue:
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
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 accesoglue database.glue table name
.
Parámetro de formato de ejemplo para la tabla Iceberg de AWS mediante un URI de archivo de metadatos
format
de ejemplo al crear tablas en una tabla de AWS Iceberg mediante un URI de archivo de metadatos:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
Parámetro de formato de ejemplo para la tabla OCI Iceberg mediante el catálogo HadoopCatalog
format
de ejemplo al crear tablas en una tabla de OCI Iceberg creada por OCI Data Flow mediante el catálogo HadoopCatalog:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
contiene un objeto JSON con dos elementos de la siguiente manera:
protocol_type
: debe ser'iceberg'
protocol_config
: objeto JSON anidado que especifica los detalles del catálogo de iceberg.iceberg_catalog_type
: debe ser'hadoop'
iceberg_warehouse
: ruta de acceso del directorio de almacén que se utiliza al generar la tabla, en formato URI nativo.iceberg_table_path
: ruta de accesodatabase_name.table name
utilizada al crear la tabla.
Parámetro de formato de ejemplo para la tabla OCI Iceberg mediante el URI del archivo de metadatos
format
de ejemplo al crear tablas en una tabla de OCI Iceberg mediante el URI del archivo de metadatos:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
contiene un objeto JSON con un elemento como se indica a continuación:
protocol_type
: debe ser'iceberg'
CREATE_EXTERNAL_TABLE Procedimiento para archivos Avro, ORC o Parquet
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 |
---|---|
|
Nombre de la tabla externa. |
|
Nombre de la credencial para acceder a Cloud Object Storage. Este parámetro no se utiliza al especificar un directorio con |
|
Este parámetro especifica una lista delimitada por comas de los URI de archivo de origen o uno o más directorios y archivos de origen. URI de archivo de origen de nube Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 tablas externas creadas en un archivo de Object Storage. Por ejemplo:
El formato de los URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. Consulte Condición REGEXP_LIKE en Referencia de lenguaje SQL 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición Directorio Puede especificar un directorio y uno o más nombres de archivos o utilizar una lista separada por comas de directorios y nombres de archivos. El formato para especificar un directorio es: 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: |
|
(Opcional) Este campo, cuando se especifica, sustituye el parámetro Si se especifica Para los archivos de Parquet, consulte Asignación de tipo de datos de Parquet a Oracle en el paquete DBMS_CLOUD. Para los archivos ORC, consulte Asignación de tipo de datos de ORC a Oracle en el paquete DBMS_CLOUD para obtener información. Para los archivos de Avro, consulte Asignación de tipo de datos de Avro a Oracle en el paquete DBMS_CLOUD para obtener más información. |
|
Se ignora para los archivos Avro, ORC o Parquet. Los campos del origen coinciden con las columnas de la tabla externa por nombre. Los tipos de datos de origen se convierten en el tipo de datos de columna de tabla externa. Para los archivos ORC, consulte Asignación de tipo de datos de ORC a Oracle en el paquete DBMS_CLOUD Para los archivos de Parquet, consulte Asignación de tipo de datos de Parquet a Oracle en el paquete DBMS_CLOUD. Para los archivos de Avro, consulte Asignación de tipo de datos de Avro a Oracle en el paquete DBMS_CLOUD para obtener más información. |
|
Para los archivos de origen 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 Asignación de nombres de Avro, ORC y Parquet a la columna de Oracle en el paquete DBMS_CLOUD para obtener información sobre la asignación de nombres de columna y el uso de conversión de nombres de columna en Oracle SQL.
Procedimiento CREATE_EXTERNAL_TEXT_INDEX
Con este procedimiento se crea un índice de texto en los archivos de Object Storage.
El procedimiento CREATE_EXTERNAL_TEXT_INDEX
crea un índice de texto en los archivos de Object Storage especificados en la ubicación location_uri
. El índice se refresca a intervalos regulares para las nuevas adiciones o supresiones realizadas con archivos en el URI de ubicación.
Sintaxis
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);
Parámetros
parámetro | Descripción |
---|---|
|
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 |
Especifica el URI de carpeta o cubo del almacén de objetos. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI de almacenamiento de objetos en la nube de archivos del paquete para obtener más información. |
index_name |
Especifica el nombre del índice que está creando en los archivos ubicados en la ubicación location_uri .
Este parámetro es obligatorio. |
|
Especifica opciones de configuración adicionales. Las opciones se especifican como una cadena JSON. Las opciones de formato soportadas son:
El valor Puede especificar palabras de parada 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
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 |
---|---|
|
Nombre de la tabla externa. |
|
Nombre de la credencial para acceder a Cloud Object Storage. |
|
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 Puede utilizar comodines y expresiones regulares en los nombres de archivo en los URI de archivo de origen de la nube. Las expresiones regulares solo se pueden utilizar cuando el parámetro 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 la 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 19c de Oracle Database u Referencia de lenguaje SQL de Oracle Database 23ai para obtener más información sobre la condición |
|
Lista delimitada por comas de nombres de columna y tipos de datos para la tabla externa. |
|
Identifica los campos en los archivos de origen y sus tipos de datos. El valor por defecto es NULL significa que los campos y sus tipos de datos están determinados por el parámetro column_list. La sintaxis de este argumento es la misma que la cláusula |
|
Opciones que describen el formato de los archivos de origen. Para obtener una lista de las opciones y cómo especificar los valores, consulte Parámetro de formato. |
Notas de uso
-
El procedimiento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
soporta archivos externos en los servicios de almacenamiento de objetos en la nube soportados, incluido Azure Blob Storage.La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
-
El procedimiento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
admite archivos particionados híbridos en directorios, ya sea en un sistema de archivos local o en un sistema de archivos de red. -
Las tablas particionadas externas que crea con
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
incluyen dos columnas invisiblesfile$path
yfile$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 |
---|---|
|
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 que se están ejecutando actualmente (las operaciones con el estado "En ejecución").
Procedimiento DELETE_FILE
Este procedimiento elimina el archivo especificado del directorio especificado en Autonomous Database.
Sintaxis
DBMS_CLOUD.DELETE_FILE
(
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre del directorio en la instancia de Autonomous Database. |
|
Nombre del archivo que se va a eliminar. |
force |
Ignore y no informe errores si el archivo no existe. Los valores válidos son: |
Note:
Para ejecutarDBMS_CLOUD.DELETE_FILE
con un usuario que no sea ADMIN, debe otorgar privilegios de escritura en el directorio que contiene el archivo a ese usuario.Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de escritura a atpc_user
:GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Ejemplo
BEGIN
DBMS_CLOUD.DELETE_FILE
(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Procedimiento DELETE_OBJECT
Este procedimiento suprime el objeto especificado en el almacén de objetos.
Sintaxis
DBMS_CLOUD.DELETE_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parámetros
parámetro | Descripción |
---|---|
|
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: |
Ejemplo
BEGIN
DBMS_CLOUD.DELETE_OBJECT
(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
Procedimiento DELETE_OPERATION
Este procedimiento borra las entradas de carga de datos para el ID de operación especificado registrado en las tablas user_load_operations
o dba_load_operations
del esquema.
Sintaxis
DBMS_CLOUD.DELETE_OPERATION
(
id IN NUMBER);
Parámetros
parámetro | Descripción |
---|---|
|
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
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 |
---|---|
|
Nombre de la credencial para acceder a Cloud Object Storage. Cuando no se incluye el parámetro de credencial, especifica la salida a un directorio. |
|
Hay diferentes formas, según el valor del parámetro format y según si incluye un parámetro credential:
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. |
|
Cadena JSON que proporciona opciones de formato de exportación. La opción admitida es:
|
|
Utilice este parámetro para especificar una sentencia SELECT warehouse_id, quantity FROM inventories Cuando el valor Por ejemplo: SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
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 |
Notas de uso:
-
El valor del parámetro
query
que proporcione puede ser una consulta avanzada, si es necesario, como una consulta que incluya uniones o subconsultas. -
Según el parámetro de formato especificado,
DBMS_CLOUD.EXPORT_DATA
muestra los resultados de la consulta especificada en el almacén de objetos en la nube o en una ubicación de directorio en formatos de archivo CSV, JSON, Parquet o XML.Consulte Exportación de datos al almacén de objetos como texto mediante DBMS_CLOUD.EXPORT_DATA y Exportación de datos a un directorio mediante DBMS_CLOUD.EXPORT_DATA para obtener más información sobre el uso de
DBMS_CLOUD.EXPORT_DATA
con archivos de salida CSV, JSON, Parquet o XML. -
Para una salida CSV, JSON o XML, por defecto cuando un archivo generado contiene 10 MB de datos, se crea un nuevo archivo de salida. Sin embargo, si tiene menos de 10 MB de datos de resultados, puede tener varios archivos de salida, según el servicio de base de datos y el número de ECPU (OCPU si la base de datos utiliza OCPU) para la instancia de Autonomous Database.
Consulte Nomenclatura de archivos para la salida de texto (CSV, JSON, Parquet o XML) para obtener más información.
El tamaño de fragmento del archivo de salida por defecto es 10 MB para CSV, JSON o XML. Puede cambiar este valor con la opción
maxfilesize
del parámetroformat
. Consulte DBMS_CLOUD Opciones de formato del paquete para EXPORT_DATA para obtener más información. -
Para la salida de Parquet, cada archivo generado tiene menos de 128 MB y se pueden generar varios archivos de salida. Sin embargo, si tiene menos de 128 MB de datos de resultados, puede tener varios archivos de salida según el servicio de base de datos y el número de ECPU (OCPU si la base de datos utiliza OCPU) para la instancia de Autonomous Database.
Consulte Nomenclatura de archivos para la salida de texto (CSV, JSON, Parquet o XML) para obtener más información.
- El formato de salida de parquet solo se puede utilizar con servicios de base de datos altos y medios para instancias de Autonomous Database en una infraestructura de Exadata dedicada.
Notas de uso de DBMS_CLOUD.EXPORT_DATA
con salida a un directorio
-
El directorio proporcionado debe existir y debe estar conectado como usuario
ADMIN
o tener accesoWRITE
al directorio. -
DBMS_CLOUD.EXPORT_DATA
no crea directorios. -
El procedimiento no sobrescribe los archivos. Por ejemplo, si existe un archivo de volcado en
file_uri_list
,DBMS_CLOUD.EXPORT_DATA
notifica un error como:ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
Ejemplos
En el siguiente ejemplo, se muestra DBMS_CLOUD.EXPORT_DATA
con el parámetro de formato type
con el valor json
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
En el siguiente ejemplo, se muestra DBMS_CLOUD.EXPORT_DATA
con el parámetro de formato type
con el valor xml
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/
En el siguiente ejemplo, se muestra DBMS_CLOUD.EXPORT_DATA
con el parámetro de formato type
con el valor csv
:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
);
END;
/
Procedimiento y función GET_OBJECT
Este procedimiento está sobrecargado. El formulario de procedimiento lee un objeto de Cloud Object Storage y lo copia en Autonomous Database. El formulario de función lee un objeto de Cloud Object Storage y devuelve un valor BLOB
a Autonomous Database.
Sintaxis
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial para acceder a Cloud Object Storage. |
|
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. |
|
Nombre del directorio en la base de datos. Pie 1 |
|
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 |
startoffset |
Desplazamiento, en bytes, desde donde comienza a leer el procedimiento. |
endoffset |
Desplazamiento, en bytes, hasta donde el procedimiento detiene la lectura. |
|
Especifica la compresión utilizada para almacenar el objeto. Cuando |
Nota a Pie de Página 1
Note:
Para ejecutar DBMS_CLOUD.GET_OBJECT
con un usuario que no sea ADMIN, debe otorgar privilegios WRITE
en el directorio a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de escritura a atpc_user
:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Valores devueltos
El formulario de función lee del almacén de objetos y DBMS_CLOUD.GET_OBJECT
devuelve BLOB
.
Ejemplos
BEGIN
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
Para leer datos de caracteres de un archivo del almacén de objetos:
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
Para agregar una imagen almacenada en el almacén de objetos en un BLOB
en la base de datos:
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
En este ejemplo, namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Función LIST_FILES
Esta función muestra los archivos del directorio especificado. Los resultados incluyen los nombres de archivo y metadatos adicionales sobre los archivos, como el tamaño de archivo en bytes, el registro de hora de creación y el registro de hora de la última modificación.
Sintaxis
DBMS_CLOUD.LIST_FILES
(
directory_name IN VARCHAR2)
RETURN TABLE;
Parámetros
parámetro | Descripción |
---|---|
|
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 aatpc_user
:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
-
Esta es una función de tabla con pipeline con el tipo de retorno
DBMS_CLOUD_TYPES.list_object_ret_t
. -
DBMS_CLOUD.LIST_FILES
no obtiene el valor de total de control y devuelveNULL
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 |
---|---|
|
Nombre de la credencial para acceder a Cloud Object Storage. |
location_uri |
URI de archivo o de objeto. El formato del URI depende del servicio de Cloud Object Storage que utilice. Para obtener más información, consulte Formatos de URI de almacenamiento de objetos en la nube. |
Notas de uso
-
Según las capacidades del almacén de objetos,
DBMS_CLOUD.LIST_OBJECTS
no devuelve valores para determinados atributos y el valor de retorno para el campo esNULL
en este caso.Todos los almacenes de objetos soportados devuelven valores para los campos
OBJECT_NAME
,BYTES
yCHECKSUM
.En la siguiente tabla se muestra el soporte para los campos
CREATED
yLAST_MODIFIED
por almacén de objetos:Almacenamiento de Objetos CREATED
LAST_MODIFIED
Nativo de Oracle Cloud Infrastructure Devuelve el registro de hora Devuelve el registro de hora Swift de Oracle Cloud Infrastructure Devuelve NULL
Devuelve el registro de hora Amazon S3 Devuelve NULL
Devuelve el registro de hora Compatible con Amazon S3 Devuelve NULL
Devuelve el registro de hora Azure Devuelve el registro de hora Devuelve el registro de hora -
El valor del total de control es el total de control MD5. Es un número hexadecimal de 32 caracteres que se calcula en el contenido del objeto.
-
Esta es una función de tabla con pipeline con el tipo de retorno
DBMS_CLOUD_TYPES.list_object_ret_t
.
Ejemplo
Esta es una función con pipeline que devuelve una fila para cada objeto. Por ejemplo, utilice la siguiente consulta para utilizar esta función:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS
('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
En este ejemplo, namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Procedimiento MOVE_OBJECT
Este procedimiento mueve un objeto de un cubo o carpeta de Cloud Object Storage a otro.
La carpeta o el cubo de origen y de destino pueden estar en el mismo proveedor del almacén de objetos en la nube o en otro diferente.
Cuando el origen y el destino están en distintos almacenes de objetos o tienen cuentas diferentes con el mismo proveedor de nube, puede proporcionar nombres de credenciales independientes para las ubicaciones de origen y destino.
El nombre de la credencial de origen también lo utiliza por defecto la ubicación de destino cuando no se proporciona el nombre de la credencial de destino.
Sintaxis
DBMS_CLOUD.MOVE_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial para acceder a Cloud Object Storage de origen. Si no proporciona un valor |
|
Especifica el URI, que apunta a la ubicación de carpeta o cubo de Object Storage de origen. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
|
Especifica el URI del cubo o carpeta de Object Storage de destino, donde se deben mover los archivos. Este parámetro es obligatorio. El formato de los URI depende del servicio Cloud Object Storage. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información. |
|
Nombre de la credencial para acceder a la ubicación de almacenamiento de objetos en la nube 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 Autonomous Database en Cloud Object Storage. En otro formulario, el procedimiento copia un valor BLOB
de Autonomous Database en Cloud Object Storage.
Sintaxis
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial para acceder a Cloud Object Storage. |
|
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. |
|
Nombre del directorio en Autonomous Database. Pie 1 |
|
Especifica el |
|
Nombre del archivo en el directorio especificado. |
|
Especifica la compresión utilizada para almacenar el objeto. Valor por defecto: |
Nota a Pie de Página 1
Note:
Para ejecutar DBMS_CLOUD.PUT_OBJECT
con un usuario que no sea ADMIN, debe otorgar privilegios de lectura en el directorio a ese usuario. Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios de lectura a atpc_user
:
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
Ejemplo
Para manejar los datos de BLOB
después del procesamiento en la base de datos y, a continuación, almacenar los datos directamente en un archivo del almacén de objetos:
DECLARE
my_blob_data BLOB;
BEGIN
/* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
contents => my_blob_data));
END;
/
Notas de uso
Según su instancia de Cloud Object Storage, el tamaño del objeto que transfiera está limitado de la siguiente forma:
Servicio de almacenamiento de objetos en la nube | Límite de tamaño de transferencia de objeto |
---|---|
Oracle Cloud Infrastructure Object Storage |
50 GB |
Amazon S3 |
5 GB |
Azure Blob Storage |
256 MB |
Compatible con Amazon S3 |
Lo define el proveedor del almacén de objetos. Para obtener más información, consulte la documentación del proveedor. |
El almacén de objetos de Oracle Cloud Infrastructure no permite escribir archivos en un cubo público sin proporcionar credenciales (Oracle Cloud Infrastructure permite a los usuarios descargar objetos de cubos públicos). Por lo tanto, debe proporcionar un nombre de credencial con credenciales válidas para almacenar un objeto en un cubo público de Oracle Cloud Infrastructure mediante PUT_OBJECT
.
Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información.
Procedimiento SYNC_EXTERNAL_PART_TABLE
Con este procedimiento se simplifica la actualización de una tabla particionada externa desde archivos de la nube. Ejecute este procedimiento siempre que se agreguen nuevas particiones o cuando se eliminen particiones del origen del almacén de objetos para la tabla particionada externa.
Sintaxis
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la tabla de destino. Es necesario crear la tabla de destino para ejecutar |
|
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. |
|
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 |
---|---|
|
Nombre de la tabla externa. |
|
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 |
|
Si se define, solo se validan las particiones específicas. Si no se especifica, lea todas las particiones de forma secuencial hasta que se alcance |
|
Si se define, solo se validan una subpartición específica. Si no se especifica, lea de todas las particiones o subparticiones externas de forma secuencial hasta que se alcance |
|
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. |
|
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. |
|
Sólo para uso interno. No utilice este parámetro. |
|
Determina si la validación se debe parar cuando se rechaza una fila. El valor por defecto es |
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 |
---|---|
|
Nombre de la tabla externa. |
|
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 |
|
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. |
|
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. |
|
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 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 particionadas externas como con tablas particionadas híbridas. Esto lee potencialmente los datos de todas las particiones externas hasta que se alcancerowcount
o se apliquestop_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 |
---|---|
|
Nombre de la tabla externa. |
|
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 |
|
Si se define, solo se validan las particiones específicas. Si no se especifica, lea de todas las particiones externas de forma secuencial hasta que se alcance |
|
Si se define, solo se validan una subpartición específica. Si no se especifica, lea de todas las particiones o subparticiones externas de forma secuencial hasta que se alcance |
|
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. |
|
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. |
|
Sólo para uso interno. No utilice este parámetro. |
|
Determina si la validación se debe parar cuando se rechaza una fila. El valor por defecto es |