DBMS_CLOUD para Objetos e Arquivos
Pré-requisitos
Como desenvolvedor, você pode usar procedimentos DBMS_CLOUD com Autonomous Databases implantados no Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.
Dependendo da opção de implantação, os pré-requisitos a seguir devem ser atendidos para usar os procedimentos DBMS_CLOUD com provedores de serviços Amazon S3, Azure Blob Storage e Google Cloud Storage.
- Crie um gateway NAT na Rede Virtual na Nuvem (VCN) em que seus recursos do Autonomous Database residem seguindo as instruções em Criar um Gateway NAT na Documentação do Oracle Cloud Infrastructure.
- Após criar o gateway NAT, adicione uma regra de roteamento e uma regra de segurança de saída a cada sub-rede (na VCN) na qual os recursos do Autonomous Database residem para que esses recursos possam usar o gateway para obter uma chave pública da sua instância do Azure AD:
- Vá para a página Detalhes da Sub-rede da sub-rede.
- Na guia Informações da Sub-rede, clique no nome da Tabela de Rota da sub-rede para exibir sua respectiva página Detalhes da Tabela de Rota.
- Na tabela de Regras de Roteamento existentes, verifique se já existe uma regra com as seguintes características:
- Destino: 0.0.0.0/0
- Tipo de Destino: Gateway NAT
- Alvo: O nome do gateway NAT recém-criado na VCN
Se essa regra não existir, clique em Adicionar Regras de Rota e adicione uma regra de roteamento com essas características.
- Retorne à página Detalhes da Sub-rede da sub-rede.
- Na tabela Listas de Segurança da sub-rede, clique no nome da lista de segurança da sub-rede para exibir a página Detalhes da Lista de Segurança.
- No menu lateral, em Recursos, clique em Regras de Saída.
- Na tabela de Regras de Saída existentes, verifique se já existe uma regra com as seguintes características:
- Tipo de Destino: CIDR
- Destino: 0.0.0.0/0
- Protocolo IP: TCP
- Faixa de Portas de Origem: 443
- Faixa de Portas de Destino: Todas
Se essa regra não existir, clique em Adicionar Regras de Saída e adicione uma regra de saída com essas características.
As definições de Proxy HTTP em seu ambiente devem permitir que o banco de dados acesse o provedor de serviços em nuvem.
Observação:
A configuração de rede, incluindo o Proxy HTTP, só poderá ser editada até que o Exadata Infrastructure esteja no estado Exige Ativação. Depois de ativado, você não poderá editar essas configurações.A configuração de um Proxy HTTP para uma Infraestrutura do Exadata já provisionada precisa de uma Solicitação de Serviço (SR) no My Oracle Support. Consulte Criar uma Solicitação de Serviço no My Oracle Support para obter detalhes.
DBMS_CLOUD Subprogramas para Objetos e Arquivos
Os subprogramas para gerenciamento de objetos e arquivos no pacote DBMS_CLOUD.
Subprograma | Descrição |
---|---|
Este procedimento carrega dados na coleção SODA existente do Cloud Object Storage ou de arquivos em um diretório. | |
Este procedimento carrega dados em tabelas existentes do Autonomous Database do Cloud Object Storage ou de arquivos em um diretório. | |
Esse procedimento com o parâmetro format type definido com o valor orc , parquet ou avro carrega dados para tabelas existentes do Autonomous Database de arquivos ORC, Parquet ou Avro na Nuvem ou de arquivos ORC, Parquet ou Avro em um diretório.
Semelhante a arquivos de texto, os dados são copiados do arquivo ORC, Parquet ou Avro de origem para a tabela interna preexistente. |
|
Este procedimento copia arquivos de um bucket do Cloud Object Storage para outro. | |
Este procedimento cria uma tabela externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos no Autonomous Database. | |
CREATE_EXTERNAL_TABLE Procedimento para Arquivos Avro, ORC ou Parquet |
Esse procedimento com o parâmetro format type definido com o valor parquet , orc ou avro cria uma tabela externa com arquivos de formato Parquet, ORC ou Avro na Nuvem ou em um diretório.
Isso permite que você execute consultas em dados externos no Autonomous Database. |
Este procedimento cria um índice de texto nos arquivos de armazenamento de objetos. |
|
Esse procedimento cria uma tabela particionada híbrida. Isso permite que você execute consultas em dados particionados híbridos no Autonomous Database. | |
Este procedimento limpa todas as operações de carregamento de dados registradas na tabela user_load_operations do seu esquema ou limpa todas as operações de carregamento de dados do tipo especificado, conforme indicado com o parâmetro type .
|
|
Este procedimento remove o arquivo especificado do diretório indicado no Autonomous Database | |
Este procedimento exclui o objeto especificado no armazenamento de objetos. | |
Este procedimento aceita um |
|
Este procedimento elimina o índice de texto nos arquivos de armazenamento de objetos. |
|
Esse procedimento exporta dados do Autonomous Database para arquivos na Nuvem com base no resultado de uma consulta. O formulário sobrecarregado permite que você use o parâmetro operation_id . Dependendo da opção type do parâmetro format especificada, o procedimento exporta linhas para o armazenamento de Objetos na Nuvem como texto com opções de CSV, JSON, Parquet ou XML |
|
Este procedimento é sobrecarregado. O form de procedimento lê um objeto do Cloud Object Storage e o copia para o Autonomous Database. O form de função lê um objeto do Cloud Object Storage e retorna um BLOB para o Autonomous Database.
|
|
Esta função lista os arquivos no diretório especificado. Os resultados incluem os nomes de arquivos e metadados adicionais sobre os arquivos, como tamanho do arquivo em bytes, timestamp de criação e o último timestamp de modificação. | |
Esta função lista objetos no local especificado no armazenamento de objetos. Os resultados incluem os nomes de objetos e metadados adicionais sobre os objetos, como tamanho, soma de verificação, timestamp de criação e o último timestamp de modificação. | |
Esse procedimento move um objeto de um bucket do Cloud Object Storage para outro. | |
Este procedimento é sobrecarregado. De uma forma, o procedimento copia um arquivo do Autonomous Database para o Cloud Object Storage. De outra, o procedimento copia um BLOB do Autonomous Database para o Cloud Object Storage.
|
|
Esse procedimento simplifica a atualização de uma tabela particionada externa de arquivos na Nuvem. Execute esse procedimento sempre que novas partições forem adicionadas ou quando as partições forem removidas da origem de Armazenamento de Objetos da tabela particionada externa. |
|
Este procedimento valida os arquivos de origem de uma tabela externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela de arquivos incorretos no Autonomous Database. | |
Esse procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela de arquivos inválidos do Autonomous Database. | |
Esse procedimento valida os arquivos de origem de uma tabela particionada híbrida, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela híbrida em uma tabela de arquivos inválidos do Autonomous Database. |
Procedimento COPY_COLLECTION
Este procedimento carrega dados em uma coleção SODA do Cloud Object Storage ou de um diretório. Se a coleção SODA especificada não existir, o procedimento a criará. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Sintaxe
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 | Descrição |
---|---|
|
O nome da coleção SODA na qual os dados serão carregados. Se já existir uma coleção com esse nome, os dados especificados serão carregados; caso contrário, uma nova coleção será criada. |
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
As opções que descrevem o formato dos arquivos de origem. Essas opções são especificadas como uma string JSON. Os formatos compatíveis são: Além dos formatos mencionados para dados JSON, o Autonomous Database também oferece suporte a outros formatos. Para obter a lista de argumentos de formato suportados pelo Autonomous Database, consulte Parâmetro de Formato. |
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
Exemplo
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;
/
Procedimento COPY_DATA
Este procedimento carrega dados em tabelas existentes do Autonomous Database de arquivos na Nuvem ou de arquivos em um diretório. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela de destino no banco de dados. A tabela de destino precisa ser criada antes de você executar |
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. URIs do arquivo de origem na nuvem Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
O nome do esquema em que a tabela de destino reside. O valor padrão é NULL, o que significa que a tabela de destino está no mesmo esquema que o usuário que está executando o procedimento. |
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULL, o que significa que os campos e seus tipos de dados são determinados pelo parâmetro column_list. A sintaxe desse argumento é a mesma da cláusula Quando o valor da opção Para obter um exemplo usando |
|
As opções descrevendo o formato da origem, do log e dos arquivos inválidos. Para ver a lista de opções e saber como especificar os valores, consulte Parâmetro de Formato. Para as opções de formato de arquivo Avro, ORC ou Parquet, consulte Opções de Formato do Pacote DBMS_CLOUD para Avro, ORC ou Parquet. |
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
Observações de Uso
O limite de registro padrão é detected newline
. Com detected newline
, o DBMS_CLOUD
tenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. O DBMS_CLOUD
primeiro procura o caractere de nova linha do Windows \r\n
. Se encontrar o caractere de nova linha do Windows, ele será usado como delimitador de registro para todos os arquivos do procedimento. Se um caractere de nova linha do Windows não for encontrado, o DBMS_CLOUD
procurará o do UNIX/Linux \n
e, caso encontre um, ele usará \n
como delimitador para todos os arquivos do procedimento. Se os arquivos de origem usarem uma combinação de diferentes delimitadores de registro, você poderá encontrar um erro como, "KUP-04020: found record longer than buffer size supported
". Nesse caso, modifique os arquivos de origem para usar o mesmo delimitador de registro ou só especifique arquivos de origem que utilizem o mesmo delimitador de registro.
Consulte Parâmetro de Formato para obter informações sobre a opção de formato recorddelmiter
.
Exemplos
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;
/
Procedimento COPY_DATA para arquivos Avro, ORC ou Parquet
format
type
definido com o valor avro
, orc
ou parquet
carrega dados para tabelas existentes do Autonomous Database de arquivos Avro, ORC ou Parquet na Nuvem ou de arquivos em um diretório.
Semelhante a arquivos de texto, os dados são copiados do arquivo de origem Avro, ORC ou Parquet para a tabela interna preexistente.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela de destino no banco de dados. A tabela de destino precisa ser criada antes de você executar |
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
O nome do esquema em que a tabela de destino reside. O valor padrão é NULL, o que significa que a tabela de destino está no mesmo esquema que o usuário que está executando o procedimento. |
|
Ignorado para arquivos Avro, ORC ou Parquet. Os campos na origem correspondem às colunas da tabela externa por nome. Os tipos de dados de origem são convertidos no tipo de dados de coluna de tabela externa. Para arquivos ORC, consulte DBMS_CLOUD Mapeamento de Tipo de Dados ORC para Oracle. Para arquivos Parquet, consulte Mapeamento de Tipo de Dados Parquet para Oracle do Pacote DBMS_CLOUD para obter detalhes sobre mapeamento. Para arquivos Avro, consulte Mapeamento de Tipo de Dados Avro para Oracle do Pacote DBMS_CLOUD para obter detalhes sobre mapeamento. |
|
As opções que descrevem o formato dos arquivos de origem. Para arquivos Avro, ORC ou Parquet, somente duas opções são suportadas: consulte Opções de Formato do Pacote DBMS_CLOUD para Avro, ORC ou Parquet. |
Observações sobre Uso
-
Assim como em outros arquivos de dados, as cargas de dados Avro, ORC e Parquet geram logs que podem ser visualizados nas tabelas
dba_load_operations
euser_load_operations
. Cada operação de carga adiciona um registro adba
[user]_load_operations
que indica a tabela que contém os logs.A tabela de log fornece informações resumidas sobre a carga.
-
For Avro, ORC, or Parquet, when the
format
parametertype
is set to the valueavro
,orc
, orparquet
, theBADFILE_TABLE
table is always empty.-
Para arquivos Parquet, erros de restrição
PRIMARY KEY
geram um erroORA
. -
Se os dados de uma coluna encontrarem um erro de conversão, por exemplo, a coluna de destino não for grande o suficiente para conter o valor convertido, o valor da coluna será definido como
NULL
. Isso não gera um registro rejeitado.
-
Procedimento COPY_OBJECT
Este procedimento copia um objeto de um bucket ou pasta do Cloud Object Storage para outro.
O bucket ou pasta de origem e destino pode estar no mesmo provedor de armazenamento de Objetos na Nuvem ou em outro provedor.
Quando a origem e o destino estiverem em Armazenamentos de Objetos distintos ou tiverem contas diferentes com o mesmo provedor de nuvem, você poderá fornecer nomes de credenciais separados para os locais de origem e destino.
Por padrão, o nome da credencial de origem também é usado pelo local de destino quando o nome da credencial de destino não é fornecido.
Sintaxe
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 | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage de origem. Se você não fornecer um valor |
|
Especifica o URI, que aponta para o local do bucket ou da pasta do Object Storage de origem. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
Especifica o URI do Armazenamento de Objetos de destino. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Se você não fornecer um valor |
Exemplo
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;
/
Procedimento CREATE_EXTERNAL_PART_TABLE
Esse procedimento cria uma tabela particionada externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos no Autonomous Database.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
O nome da credencial para acessar o Cloud Object Storage. |
|
Especifica a cláusula de particionamento completo, incluindo as informações de localização para partições individuais. Se você usar o parâmetro |
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Essa opção só é suportada com tabelas externas criadas em um arquivo no Object Storage. Por exemplo:
Se você usar o parâmetro O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição |
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a tabela externa. Esse parâmetro tem os seguintes requisitos, dependendo do tipo dos arquivos de dados especificados com o parâmetro
|
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULL, o que significa que os campos e seus tipos de dados são determinados pelo parâmetro column_list. A sintaxe desse argumento é a mesma da cláusula |
|
A opção de formato
Se os arquivos de dados não forem estruturados e a subcláusula Para nomes de objeto que não se baseiam no formato hive, a ordem das colunas especificadas de Para ver todas as opções de parâmetro |
Observações sobre Uso
-
Você não pode chamar esse procedimento com os parâmetros
partitioning_clause
efile_uri_list
. -
A especificação do parâmetro
column_list
é opcional com arquivos de dados estruturados, incluindo arquivos de dados Avro, Parquet ou ORC. Secolumn_list
não for especificado, a opçãopartition_columns
do parâmetroformat
deverá incluirname
etype
. -
O parâmetro
column_list
é obrigatório com arquivos de dados não estruturados, como arquivos de texto CSV. -
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
suporta arquivos particionados externos nos serviços de armazenamento de objetos na nuvem suportados, que incluem:-
Oracle Cloud Infrastructure Object Storage
-
Armazenamento Blob do Azure
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
-
-
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
suporta arquivos particionados externos em diretórios, seja em um sistema de arquivos local ou em um sistema de arquivos de rede. -
Quando você chama
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
com o parâmetrofile_uri_list
, os tipos das colunas especificadas no nome do arquivo do Armazenamento de Objetos na Nuvem devem ser um destes:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9)
-
O limite de registro padrão é
detected newline
. Comdetected newline
, oDBMS_CLOUD
tenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. ODBMS_CLOUD
primeiro procura o caractere de nova linha do Windows\r\n
. Se encontrar o caractere de nova linha do Windows, ele será usado como delimitador de registro para todos os arquivos do procedimento. Se um caractere de nova linha do Windows não for encontrado, oDBMS_CLOUD
procurará o do UNIX/Linux\n
e, caso encontre um, ele usará\n
como delimitador para todos os arquivos do procedimento. Se os arquivos de origem usarem uma combinação de diferentes delimitadores de registro, você poderá encontrar um erro como, "KUP-04020: found record longer than buffer size supported
". Nesse caso, modifique os arquivos de origem para usar o mesmo delimitador de registro ou só especifique arquivos de origem que utilizem o mesmo delimitador de registro.Consulte Formatos de URI do Cloud Object Storage para obter informações sobre a opção de formato
recorddelmiter
. -
As tabelas particionadas externas criadas com
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
incluem duas colunas invisíveisfile$path
efile$name
. Essas colunas ajudam a identificar de qual arquivo um registro está vindo.-
file$path
: Especifica o texto do caminho do arquivo até o início do nome do objeto. -
file$name
: Especifica o nome do objeto, incluindo todo o texto que segue o nome do bucket.
-
Exemplos
Exemplo usando o 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;
/
Exemplo usando os parâmetros file_uri_list
e column_list
com arquivos de dados não estruturados:
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;
/
Exemplo usando o file_uri_list
sem o parâmetro column_list
com arquivos de dados estruturados:
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;
/
Procedimento CREATE_EXTERNAL_TABLE
Este procedimento cria uma tabela externa em arquivos na Nuvem ou em arquivos em um diretório. Isso permite que você execute consultas em dados externos no Autonomous Database.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
O nome da credencial para acessar o Cloud Object Storage. Esse parâmetro não é usado quando você especifica um diretório ou um URL de Hiperlink de Tabela com |
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Essa opção só é suportada com tabelas externas criadas em um arquivo no Object Storage. Por exemplo:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a tabela externa. |
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULL, o que significa que os campos e seus tipos de dados são determinados pelo parâmetro |
|
As opções que descrevem o formato dos arquivos de origem. Para ver a lista de opções e saber como especificar os valores, consulte Parâmetro de Formato. Para arquivos de formato Avro, ORC ou Parquet, consulte Procedimento CREATE_EXTERNAL_TABLE para Arquivos Avro, ORC ou Parquet. |
Observações sobre Uso
-
O procedimento
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
suporta arquivos particionados externos nos serviços suportados de armazenamento de objetos na nuvem, incluindo o Azure Blob Storage.A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
-
O limite de registro padrão é
detected newline
. Comdetected newline
, oDBMS_CLOUD
tenta localizar automaticamente o caractere correto de nova linha a ser usado como delimitador de registro. ODBMS_CLOUD
primeiro procura o caractere de nova linha do Windows\r\n
. Se encontrar o caractere de nova linha do Windows, ele será usado como delimitador de registro para todos os arquivos do procedimento. Se um caractere de nova linha do Windows não for encontrado, oDBMS_CLOUD
procurará o do UNIX/Linux\n
e, caso encontre um, ele usará\n
como delimitador para todos os arquivos do procedimento. Se os arquivos de origem usarem uma combinação de diferentes delimitadores de registro, você poderá encontrar um erro como, "KUP-04020: found record longer than buffer size supported
". Nesse caso, modifique os arquivos de origem para usar o mesmo delimitador de registro ou só especifique arquivos de origem que utilizem o mesmo delimitador de registro.Consulte Parâmetro de Formato para obter informações sobre a opção de formato
recorddelimiter
.
Exemplo
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 Procedimento para Iceberg do Apache
Este procedimento cria tabelas externas para tabelas do Apache Iceberg nas configurações suportadas.
- Tabelas de icebergs na AWS:
- Tabelas Iceberg registradas no AWS Glue Data Catalog, criadas com o Spark ou Athena.
Para obter mais informações, consulte Usar o conector do AWS Glue para ler e gravar tabelas do Apache Iceberg com transações ACID e executar deslocamento no tempo e Usando tabelas do Iceberg.
- Tabelas Iceberg armazenadas no AWS S3 fornecendo diretamente o URL do arquivo de metadados raiz.
- Tabelas Iceberg registradas no AWS Glue Data Catalog, criadas com o Spark ou Athena.
- Tabelas de Iceberg na OCI:
- Tabelas Iceberg geradas com o OCI Data Flow usando um Catálogo Hadoop.
Para obter mais informações, consulte Exemplos do Oracle Data Flow e Usando um Catálogo do Hadoop.
- Tabelas Iceberg armazenadas no OCI Object Storage fornecendo diretamente o URL do arquivo de metadados raiz.
- Tabelas Iceberg geradas com o OCI Data Flow usando um Catálogo Hadoop.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
O nome da credencial usada para acessar os arquivos de dados, os arquivos de metadados e o Catálogo de Iceberg (se usado). Para configurações do AWS e do OCI, a credencial deve ser criada conforme descrito no CREATE_CREDENTIAL Procedure. As credenciais do AWS Amazon Resource Names (ARN) não são suportadas no momento. |
|
Deve ser NULO se um catálogo de Iceberg for especificado (consulte o parâmetro format abaixo). Se um catálogo de icebergs não for usado, o file_uri_list deverá conter o URI do arquivo de metadados do iceberg.
|
|
Deve ser NULL, pois os nomes e tipos de coluna são automaticamente derivados dos metadados Iceberg. Os nomes das colunas correspondem aos nomes encontrados nos arquivos de dados subjacentes (Parquet, Avro, ORC). Os tipos de dados Oracle são derivados usando os mapeamentos Parquet/Avro/ORC entre Iceberg e os tipos de dados Parquet, Avro e ORC. Portanto, os usuários não podem especificar o |
|
Deve ser NULO, pois os nomes das colunas e os tipos de dados são derivados automaticamente dos metadados do Iceberg. |
|
O parâmetro Consulte Suporte Iceberg em Amostras do OCI Data Flow e Formatos de URI DBMS_CLOUD para obter mais informações. |
Exemplo de parâmetro de formato para tabelas do AWS Iceberg usando um Catálogo do AWS Glue
Um parâmetro format
de amostra ao criar tabelas em uma tabela do AWS Iceberg usando um Catálogo de Colas da AWS é o seguinte:
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
contém um objeto JSON com dois elementos da seguinte forma:
protocol_type
: Deve ser 'iceberg'protocol_config
: Um objeto JSON aninhado que especifica os detalhes do catálogo do iceberg.iceberg_catalog_type
: Deve ser'aws_glue'
iceberg_glue_region
: A região do catálogo, por exemplo,'us-west-1'
iceberg_table_path
: Um caminhoglue database.glue table name
.
Exemplo de parâmetro de formato da tabela do AWS Iceberg usando um URI de arquivo de metadados
format
de amostra ao criar tabelas em uma tabela do AWS Iceberg usando um URI de arquivo de metadados é o seguinte:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
Exemplo de parâmetro de formato para a tabela Iceberg do OCI usando o catálogo HadoopCatalog
format
de amostra ao criar tabelas por meio de uma tabela do OCI Iceberg criada pelo OCI Data Flow usando o catálogo HadoopCatalog é o seguinte: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
contém um objeto JSON com dois elementos da seguinte forma:
protocol_type
: Deve ser'iceberg'
protocol_config
: Um objeto JSON aninhado que especifica os detalhes do catálogo do iceberg.iceberg_catalog_type
: Deve ser'hadoop'
iceberg_warehouse
: O caminho do diretório do warehouse usado ao gerar a tabela, no formato URI nativo.iceberg_table_path
: O caminhodatabase_name.table name
usado ao criar a tabela.
Exemplo de parâmetro de formato para a tabela Iceberg do OCI usando o URI do arquivo de metadados
format
de amostra ao criar tabelas por meio de uma tabela Iceberg do OCI usando o URI do arquivo de metadados é o seguinte:format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
contém um objeto JSON com um elemento da seguinte forma:
protocol_type
: Deve ser'iceberg'
CREATE_EXTERNAL_TABLE Procedimento para Arquivos Avro, ORC ou Parquet
format
type
definido com o valor avro
, orc
ou parquet
cria uma tabela externa com arquivos no formato Avro, ORC ou Parquet na Nuvem ou em um diretório.
Isso permite que você execute consultas em dados externos no Autonomous Database.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
O nome da credencial para acessar o Cloud Object Storage. Este parâmetro não é usado quando você especifica um diretório com |
|
Esse parâmetro especifica uma lista delimitada por vírgulas dos URIs de arquivo de origem ou um ou mais diretórios e arquivos de origem. URIs do arquivo de origem na nuvem Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Essa opção só é suportada com tabelas externas criadas em um arquivo no Object Storage. Por exemplo:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição Diretório Você pode especificar um diretório e um ou mais nomes de arquivos ou usar uma lista separada por vírgulas de diretórios e nomes de arquivos. O formato para especificar um diretório é: Você pode usar curingas para especificar nomes de arquivo em um diretório. O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere. Por exemplo: Para especificar vários diretórios, use uma lista de diretórios separada por vírgulas: Por exemplo: Use aspas duplas para especificar um nome de diretório que faça distinção entre maiúsculas e minúsculas. Por exemplo: Para incluir um caractere de aspas, use duas aspas. Por exemplo: |
|
(Opcional) Esse campo, quando especificado, substitui o parâmetro Quando Para arquivos Parquet, consulte Mapeamento de Tipo de Dados Parquet para Oracle do Pacote DBMS_CLOUD para obter detalhes. Para arquivos ORC, consulte Mapeamento de Tipo de Dados ORC para Oracle do Pacote DBMS_CLOUD para obter detalhes. Para arquivos Avro, consulte Mapeamento de Tipo de Dados Avro para Oracle do Pacote DBMS_CLOUD para obter detalhes. |
|
Ignorado para arquivos Avro, ORC ou Parquet. Os campos na origem correspondem às colunas da tabela externa por nome. Os tipos de dados de origem são convertidos no tipo de dados de coluna de tabela externa. Para arquivos ORC, consulte Mapeamento de Tipo de Dados ORC para Oracle do Pacote DBMS_CLOUD Para arquivos Parquet, consulte Mapeamento de Tipo de Dados Parquet para Oracle do Pacote DBMS_CLOUD para obter detalhes. Para arquivos Avro, consulte Mapeamento de Tipo de Dados Avro para Oracle do Pacote DBMS_CLOUD para obter detalhes. |
|
Para arquivos de origem Avro, ORC ou Parquet |
Exemplos de ORC
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
Exemplos de Avro
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
Exemplos de Parquet
format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')
Mapeamento de Nome de Coluna Avro, ORC ou Parquet para Nomes de Coluna Oracle
Consulte Mapeamento de Nome de Coluna Avro, ORC e Parquet para Oracle do Pacote DBMS_CLOUD para obter informações sobre mapeamento de nome de coluna e uso de conversão de nome de coluna no Oracle SQL.
Procedimento CREATE_EXTERNAL_TEXT_INDEX
Este procedimento cria um índice de texto em arquivos do Object Storage.
O procedimento CREATE_EXTERNAL_TEXT_INDEX
cria índice de texto nos arquivos do Object Storage especificados no local location_uri
. O índice é atualizado em intervalos regulares, para quaisquer novas adições ou exclusões feitas com arquivos no URI do local.
Sintaxe
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 | Descrição |
---|---|
|
O nome da credencial para acessar o local do Cloud Object Storage. Para URIs de bucket públicos, pré-autenticados ou pré-assinados, um NULL pode ser especificado. Se você não fornecer um valor |
location_uri |
Especifica o URI do bucket ou da pasta do Armazenamento de Objetos. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte DBMS_CLOUD Formatos de URI do Serviço File Cloud Object Storage para obter mais informações. |
index_name |
Especifica o nome do índice que você está construindo nos arquivos localizados no local location_uri .
Esse parâmetro é obrigatório. |
|
Especifica opções de configuração adicionais. As opções são especificadas como uma string JSON. As opções de formato suportadas são:
O valor Você pode especificar palavras de parada usando os seguintes métodos:
Se você não fornecer um parâmetro |
Exemplo
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;
/
Procedimento CREATE_HYBRID_PART_TABLE
Esse procedimento cria uma tabela particionada híbrida. Isso permite executar consultas em dados particionados híbridos do Autonomous Database usando objetos e arquivos de banco de dados na Nuvem ou objetos e arquivos de banco de dados em um diretório.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
O nome da credencial para acessar o Cloud Object Storage. |
|
Especifica a cláusula de particionamento completo, incluindo as informações de localização para partições individuais. Para usar diretórios, a cláusula de particionamento suporta os valores Você pode usar curingas, bem como expressões regulares nos nomes de arquivo nos URIs de arquivo de origem da Nuvem. As expressões regulares só podem ser usadas quando o parâmetro Os caracteres "*" e "?" são considerados caracteres curinga quando o parâmetro Padrões de expressão regular só são suportados para o nome do arquivo ou caminho da subpasta em seus URIs e a correspondência de padrões é idêntica à executada pela função Por exemplo:
Consulte REGEXP_LIKE Condition em Oracle Database 19c SQL Language Reference ou Oracle Database 23ai SQL Language Reference para obter mais informações sobre a condição |
|
Lista delimitada por vírgulas de nomes de colunas e tipos de dados para a tabela externa. |
|
Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULL, o que significa que os campos e seus tipos de dados são determinados pelo parâmetro column_list. A sintaxe desse argumento é a mesma da cláusula |
|
As opções que descrevem o formato dos arquivos de origem. Para ver a lista de opções e saber como especificar os valores, consulte Parâmetro de Formato. |
Observações sobre Uso
-
O procedimento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
suporta arquivos particionados externos nos serviços suportados de armazenamento de objetos na nuvem, incluindo o Azure Blob Storage.A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
-
O procedimento
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
suporta arquivos particionados híbridos em diretórios, seja em um sistema de arquivos local ou em um sistema de arquivos de rede. -
As tabelas particionadas externas criadas com
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
incluem duas colunas invisíveisfile$path
efile$name
. Essas colunas ajudam a identificar de qual arquivo um registro está vindo.-
file$path
: Especifica o texto do caminho do arquivo até o início do nome do objeto. -
file$name
: Especifica o nome do objeto, incluindo todo o texto que segue o nome do bucket.
-
Exemplos
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;
/
Procedimento DELETE_ALL_OPERATIONS
Este procedimento limpa todas as operações de carregamento de dados registradas na tabela user_load_operations
do seu esquema ou limpa todas as operações de carregamento de dados do tipo especificado, conforme indicado com o parâmetro type
.
Sintaxe
DBMS_CLOUD.DELETE_ALL_OPERATIONS
(
type IN VARCHAR DEFAULT NULL);
Parâmetros
Parâmetro | Descrição |
---|---|
|
Especifica o tipo de operação a ser excluída. Valores de tipo podem ser encontrados na coluna Se nenhum |
Observações de Uso
-
DBMS_CLOUD.DELETE_ALL_OPERATIONS
não exclui operações em execução no momento (operações com status "Em Execução").
Procedimento DELETE_FILE
Este procedimento remove o arquivo especificado do diretório indicado no Autonomous Database.
Sintaxe
DBMS_CLOUD.DELETE_FILE
(
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome do diretório na instância do Autonomous Database. |
|
O nome do arquivo a ser removido. |
force |
Ignore e não relate erros se o arquivo não existir. Os valores válidos são: |
Observação:
Para executarDBMS_CLOUD.DELETE_FILE
com um usuário diferente de ADMIN, você precisa conceder privilégios de gravação no diretório que contém o arquivo a esse usuário.Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de gravação a atpc_user
:GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Exemplo
BEGIN
DBMS_CLOUD.DELETE_FILE
(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Procedimento DELETE_OBJECT
Este procedimento exclui o objeto especificado no armazenamento de objetos.
Sintaxe
DBMS_CLOUD.DELETE_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. |
object_uri |
Objeto ou URI do arquivo para o objeto a ser excluído. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
force |
Ignorar e não relatar erros se o objeto não existir. Os valores válidos são: |
Exemplo
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;
/
Procedimento DELETE_OPERATION
Este procedimento limpa as entradas de carga de dados para o ID de operação especificado registrado nas tabelas user_load_operations
ou dba_load_operations
no seu esquema.
Sintaxe
DBMS_CLOUD.DELETE_OPERATION
(
id IN NUMBER);
Parâmetros
Parâmetro | Descrição |
---|---|
|
Especifica o ID da operação associado às entradas do arquivo de log que você deseja excluir. |
Exemplo
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
Procedimento DROP_EXTERNAL_TEXT_INDEX
Este procedimento elimina o índice de texto nos arquivos do Object Storage.
O procedimento DROP_EXTERNAL_TEXT_INDEX
elimina o índice especificado criado com o procedimento CREATE_EXTERNAL_TEXT_INDEX
.
Sintaxe
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name IN VARCHAR2,
);
Parâmetros
Parâmetro | Descrição |
---|---|
index_name |
Especifica o nome do índice que você está eliminando. O nome do índice deve corresponder ao nome fornecido no momento da criação do índice. Esse parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
Procedimento EXPORT_DATA
Com base no parâmetro format
type
, o procedimento exporta arquivos para a Nuvem ou para um local de diretório como arquivos de texto no formato CSV, JSON, Parquet ou XML.
Sintaxe
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 | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. Quando o parâmetro de credencial não é incluído, isso especifica a saída para um diretório. |
|
Existem diferentes formulários, dependendo do valor do parâmetro de formato e se você incluir um parâmetro de credencial:
O formato dos URIs depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
|
Uma string JSON que fornece opções de formato de exportação. A opção suportada é:
Consulte DBMS_CLOUD Opções de Formato do Pacote para EXPORT_DATA. |
|
Use esse parâmetro para especificar uma instrução SELECT warehouse_id, quantity FROM inventories Quando o valor Por exemplo: SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
Use esse parâmetro para rastrear o andamento e o status final da operação de exportação como ID correspondente na view |
Observações de Uso:
-
O valor do parâmetro
query
fornecido pode ser uma consulta avançada, se necessário, como uma consulta que inclui junções ou subconsultas. -
Dependendo do parâmetro de formato especificado,
DBMS_CLOUD.EXPORT_DATA
gera os resultados da consulta especificada no Cloud Object Store ou em um local de diretório nos formatos de arquivo CSV, JSON, Parquet ou XML.Consulte Exportar Dados para o Armazenamento de Objetos como Texto Usando DBMS_CLOUD.EXPORT_DATA e Exportar dados para um Diretório Usando DBMS_CLOUD.EXPORT_DATA para obter mais informações sobre o uso de
DBMS_CLOUD.EXPORT_DATA
com arquivos de saída CSV, JSON, Parquet ou XML. -
Para saída CSV, JSON ou XML, por padrão, quando um arquivo gerado contém 10 MB de dados, um novo arquivo de saída é criado. No entanto, se você tiver menos de 10 MB de dados de resultado, poderá ter vários arquivos de saída, dependendo do serviço de banco de dados e do número de ECPUs (OCPUs, se o seu banco de dados usar OCPUs) da instância do Autonomous Database.
Consulte Nomenclatura de Arquivo para Saída de Texto (CSV, JSON, Parquet ou XML) para obter mais informações.
O tamanho do chunk do arquivo de saída padrão é 10 MB para CSV, JSON ou XML. Você pode alterar esse valor com a opção
maxfilesize
do parâmetroformat
. Consulte DBMS_CLOUD Opções de Formato do Pacote para EXPORT_DATA para obter mais informações. -
Para saída Parquet, cada arquivo gerado tem menos de 128 MB e vários arquivos de saída podem ser gerados. No entanto, se você tiver menos de 128 MB de dados de resultado, poderá ter vários arquivos de saída, dependendo do serviço de banco de dados e do número de ECPUs (OCPUs, se o seu banco de dados usar OCPUs) da instância do Autonomous Database.
Consulte Nomenclatura de Arquivo para Saída de Texto (CSV, JSON, Parquet ou XML) para obter mais informações.
- O formato de saída parquet só pode ser usado com serviços de banco de dados altos e médios para Autonomous Databases na Infraestrutura Dedicada do Exadata.
Observações de Uso de DBMS_CLOUD.EXPORT_DATA
com Saída para um Diretório
-
O diretório fornecido deve existir e você deve estar conectado como o usuário
ADMIN
ou ter acessoWRITE
ao diretório. -
O
DBMS_CLOUD.EXPORT_DATA
não cria diretórios. -
O procedimento não substitui arquivos. Por exemplo, se um arquivo de dump no
file_uri_list
existir, oDBMS_CLOUD.EXPORT_DATA
reportará um erro como:ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
Exemplos
O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA
com o parâmetro de formato type
com o 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;
/
O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA
com o parâmetro de formato type
com o 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;
/
O exemplo a seguir mostra DBMS_CLOUD.EXPORT_DATA
com o parâmetro de formato type
com o 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;
/
Procedimento e Função GET_OBJECT
Este procedimento é sobrecarregado. O form de procedimento lê um objeto do Cloud Object Storage e o copia para o Autonomous Database. O form de função lê um objeto do Cloud Object Storage e retorna um BLOB
para o Autonomous Database.
Sintaxe
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 | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. |
|
URI do objeto ou do arquivo. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
|
O nome do diretório no banco de dados. Rodapé 1 |
|
Especifica o nome do arquivo a ser criado. Se o nome do arquivo não for especificado, o nome do arquivo será obtido após a última barra no parâmetro |
startoffset |
O deslocamento, em bytes, de onde o procedimento inicia a leitura. |
endoffset |
O deslocamento, em bytes, até onde o procedimento interrompe a leitura. |
|
Especifica a compactação usada para armazenar o objeto. Quando o parâmetro |
Rodapé 1
Observação:
Para executar DBMS_CLOUD.GET_OBJECT
com um usuário distinto de ADMIN, você precisa conceder privilégios WRITE
no diretório a esse usuário. Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de gravação a atpc_user
:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Valores de Retorno
O form de função é lido no Armazenamento de Objetos e DBMS_CLOUD.GET_OBJECT
retorna um BLOB
.
Exemplos
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 ler dados de caracteres de um arquivo no Armazenamento 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 adicionar uma imagem colocada no Armazenamento de Objetos em um BLOB
no banco de dados:
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;
/
Neste exemplo, namespace-string
corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname
corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.
Função LIST_FILES
Esta função lista os arquivos no diretório especificado. Os resultados incluem os nomes de arquivos e metadados adicionais sobre os arquivos, como tamanho do arquivo em bytes, timestamp de criação e o último timestamp de modificação.
Sintaxe
DBMS_CLOUD.LIST_FILES
(
directory_name IN VARCHAR2)
RETURN TABLE;
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome do diretório no banco de dados. |
Observações sobre Uso
-
Para executar
DBMS_CLOUD.LIST_FILES
com um usuário distinto de ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário.Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de leitura aatpc_user
:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
-
Essa é uma função de tabela em pipeline com tipo de retorno como
DBMS_CLOUD_TYPES.list_object_ret_t
. -
O
DBMS_CLOUD.LIST_FILES
não obtém o valor da soma de verificação e retornaNULL
para esse campo.
Exemplo
Essa é uma função em pipeline que retorna uma linha para cada arquivo. Por exemplo, use a consulta a seguir para usar esta função:
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
Função LIST_OBJECTS
Esta função lista objetos no local especificado no armazenamento de objetos. Os resultados incluem os nomes de objetos e metadados adicionais sobre os objetos, como tamanho, soma de verificação, timestamp de criação e o último timestamp de modificação.
Sintaxe
DBMS_CLOUD.LIST_OBJECTS
(
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. |
location_uri |
URI do objeto ou do arquivo. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
Observações sobre Uso
-
Dependendo dos recursos do armazenamento de objetos, o
DBMS_CLOUD.LIST_OBJECTS
não retorna valores para determinados atributos e o valor de retorno do campo éNULL
nesse caso.Todos os Armazenamentos de Objetos suportados retornam valores para os campos
OBJECT_NAME
,BYTES
eCHECKSUM
.A tabela a seguir mostra o suporte para os campos
CREATED
eLAST_MODIFIED
pelo Armazenamento de Objetos:Armazenamento de Objetos CREATED
LAST_MODIFIED
Oracle Cloud Infrastructure Nativo Retorna o timestamp Retorna o timestamp Swift da Oracle Cloud Infrastructure Retorna NULL
Retorna o timestamp Amazon S3 Retorna NULL
Retorna o timestamp Compatível com Amazon S3 Retorna NULL
Retorna o timestamp Azure Retorna o timestamp Retorna o timestamp -
O valor da soma de verificação é a soma de verificação MD5. Esse é um número hexadecimal de 32 caracteres que é calculado no conteúdo do objeto.
-
Essa é uma função de tabela em pipeline com tipo de retorno como
DBMS_CLOUD_TYPES.list_object_ret_t
.
Exemplo
Essa é uma função em pipeline que retorna uma linha para cada objeto. Por exemplo, use a consulta a seguir para usar esta função:
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
Neste exemplo, namespace-string
corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname
corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.
Procedimento MOVE_OBJECT
Esse procedimento move um objeto de um bucket ou pasta do Cloud Object Storage para outro.
O bucket ou pasta de origem e destino pode estar no mesmo provedor de armazenamento de Objetos na Nuvem ou em outro provedor.
Quando a origem e o destino estiverem em Armazenamentos de Objetos distintos ou tiverem contas diferentes com o mesmo provedor de nuvem, você poderá fornecer nomes de credenciais separados para os locais de origem e destino.
Por padrão, o nome da credencial de origem também é usado pelo local de destino quando o nome da credencial de destino não é fornecido.
Sintaxe
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 | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage de origem. Se você não fornecer um valor |
|
Especifica o URI, que aponta para o local do bucket ou da pasta do Object Storage de origem. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
Especifica o URI do bucket ou pasta do Object Storage de destino, onde os arquivos precisam ser movidos. Esse parâmetro é obrigatório. O formato dos URIs depende do serviço Cloud Object Storage. Consulte Formatos de URI do Cloud Object Storage para obter mais informações. |
|
O nome da credencial para acessar o local de destino do Cloud Object Storage. Se você não fornecer um valor |
Exemplo
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;
/
Procedimento PUT_OBJECT
Este procedimento é sobrecarregado. De uma forma, o procedimento copia um arquivo do Autonomous Database para o Cloud Object Storage. De outra, o procedimento copia um BLOB
do Autonomous Database para o Cloud Object Storage.
Sintaxe
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 | Descrição |
---|---|
|
O nome da credencial para acessar o Cloud Object Storage. |
|
URI do objeto ou do arquivo. O formato do URI depende do serviço Cloud Object Storage que você está usando. Para obter detalhes, consulte Formatos de URI do Cloud Object Storage. |
|
O nome do diretório no Autonomous Database. Rodapé 1 |
|
Especifica o |
|
O nome do arquivo no diretório especificado. |
|
Especifica a compactação usada para armazenar o objeto. Valor padrão: |
Rodapé 1
Observação:
Para executar DBMS_CLOUD.PUT_OBJECT
com um usuário que não seja ADMIN, você precisa conceder privilégios de leitura no diretório a esse usuário. Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios de leitura a atpc_user
:
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
Exemplo
Para tratar dados BLOB
após o processamento no banco de dados e, em seguida, armazenar os dados diretamente em um arquivo no armazenamento 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;
/
Observações sobre Uso
Dependendo do Cloud Object Storage, o tamanho do objeto que você transfere é limitado da seguinte forma:
Serviço Cloud Object Storage | Limite de Tamanho de Transferência de Objeto |
---|---|
Oracle Cloud Infrastructure Object Storage |
50 GB |
Amazon S3 |
5 GB |
Armazenamento Blob do Azure |
256 MB |
Compatível com Amazon S3 |
Definido pelo provedor de armazenamento de objetos. Para obter mais informações, consulte a documentação do provedor. |
O armazenamento de objetos do Oracle Cloud Infrastructure não permite gravar arquivos em um bucket público sem fornecer credenciais (o Oracle Cloud Infrastructure permite que os usuários façam download de objetos de buckets públicos). Portanto, você deve fornecer um nome de credencial com credenciais válidas para armazenar um objeto em um bucket público do Oracle Cloud Infrastructure usando PUT_OBJECT
.
Consulte Formatos de URI do Cloud Object Storage para obter mais informações.
Procedimento SYNC_EXTERNAL_PART_TABLE
Esse procedimento simplifica a atualização de uma tabela particionada externa de arquivos na Nuvem. Execute esse procedimento sempre que novas partições forem adicionadas ou quando as partições forem removidas da origem de Armazenamento de Objetos da tabela particionada externa.
Sintaxe
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da tabela de destino. É necessário criar a tabela de destino antes de executar |
|
O nome do esquema em que a tabela de destino reside. O valor padrão é NULL, o que significa que a tabela de destino está no mesmo esquema que o usuário que está executando o procedimento. |
|
Os novos arquivos podem introduzir uma alteração no esquema. As atualizações suportadas incluem: novas colunas, colunas excluídas. Atualizações de colunas existentes, por exemplo, uma alteração no tipo de dados gera erros. Valor padrão: falso |
Procedimento VALIDATE_EXTERNAL_PART_TABLE
Esse procedimento valida os arquivos de origem de uma tabela particionada externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela de arquivos inválidos do Autonomous Database. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
|
Se definido, apenas uma partição específica será validada. Se não for especificado, leia todas as partições sequencialmente até atingir |
|
Se definido, apenas uma subpartição específica será validada. Se não for especificado, leia sequencialmente todas as partições ou subpartições externas até atingir |
|
O nome do esquema em que a tabela externa reside. O valor padrão é NULL, o que significa que a tabela externa está no mesmo esquema que o usuário que está executando o procedimento. |
|
Número de linhas a serem verificadas. O valor padrão é NULL, o que significa que todas as linhas dos arquivos de origem são verificadas. |
|
Somente para uso interno. Não use esse parâmetro. |
|
Determina se a validação deve ser interrompida quando uma linha for rejeitada. O valor padrão é |
Procedimento VALIDATE_EXTERNAL_TABLE
Este procedimento valida os arquivos de origem de uma tabela externa, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela externa em uma tabela de arquivos incorretos no Autonomous Database. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
|
O nome do esquema em que a tabela externa reside. O valor padrão é NULL, o que significa que a tabela externa está no mesmo esquema que o usuário que está executando o procedimento. |
|
Número de linhas a serem verificadas. O valor padrão é NULL, o que significa que todas as linhas dos arquivos de origem são verificadas. |
|
Determina se a validação deve ser interrompida quando uma linha for rejeitada. O valor padrão é Se a tabela externa se mencionar os arquivos Avro, ORC ou Parquet, a validação será interrompida na primeira linha rejeitada. Quando a tabela externa especifica o parâmetro |
Observações sobre Uso
-
O
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
funciona com tabelas externas particionadas e tabelas híbridas particionadas. Isso potencialmente lê dados de todas as partições externas até querowcount
seja atingido oustop_on_error
seja aplicado. Você não tem controle sobre qual partição, ou partes de uma partição, é lida em que ordem.
Procedimento VALIDATE_HYBRID_PART_TABLE
Esse procedimento valida os arquivos de origem de uma tabela particionada híbrida, gera informações de log e armazena as linhas que não correspondem às opções de formato especificadas para a tabela híbrida em uma tabela de arquivos inválidos do Autonomous Database. O formulário sobrecarregado permite que você use o parâmetro operation_id
.
Sintaxe
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 | Descrição |
---|---|
|
O nome da tabela externa. |
|
Use esse parâmetro para rastrear o andamento e o status final da operação de carga como o ID correspondente na view |
|
Se definido, apenas uma partição específica será validada. Se não for especificado, leia todas as partições externas sequencialmente até que |
|
Se definido, apenas uma subpartição específica será validada. Se não for especificado, leia sequencialmente todas as partições ou subpartições externas até atingir |
|
O nome do esquema em que a tabela externa reside. O valor padrão é NULL, o que significa que a tabela externa está no mesmo esquema que o usuário que está executando o procedimento. |
|
Número de linhas a serem verificadas. O valor padrão é NULL, o que significa que todas as linhas dos arquivos de origem são verificadas. |
|
Somente para uso interno. Não use esse parâmetro. |
|
Determina se a validação deve ser interrompida quando uma linha for rejeitada. O valor padrão é |